I do not know. However, it works if you use a dynamic template.
PUT _template/nyc
{
"order":0,
"index_patterns":"nyc",
"mappings": {
"calls": {
"dynamic_templates": [
{
"locations": {
"match": "location",
"mapping": { "type": "geo_point" }
}
}
]
}
}
}