Creating geoip data for internal networks

I have many internal users, and both public and private address space in use. I would like to be able to usefully separate my networks from the country we're in, and provide sensible geoip data.

For my public range, I can easily fix the text fields I want to change (eg we get the wrong timezone, but that doesn't affect @timestamp; and I change [geoip][country_name] to a private value), and for my 10.0.0.0/8 network I can create the [geoip] structure I need.

Unfortunately I can't figure out how to make a geo_point value that gets in to Elasticsearch ... I need to create a geo_point for the internal network, and would like to fix the existing ones for the public range. I keep ending up with {"type":"double"} instead of {"type":"geopoint"}, even when I specify an output template for Elasticsearch.

Can someone please point me at an example of creating a geo_point from scratch, and getting it into ES?