Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Loading a geoJSON object directly into google maps v3

I'm trying to create a map, using floor plans that I've stored in mongodb. If I put the JSON into a file, I can call it using map.data.loadGeoJson('myfile.json')

However, I don't want to save a file each time I build a map, and I'd rather write an object directly. Something like this:

var tempObject = {     "type": "FeatureCollection",     "features": [       {         "type": "Feature",         "properties": {           "letter": "G",           "color": "blue",           "rank": "7",           "ascii": "71"         },         "geometry": {           "type": "Polygon",           "coordinates": [             [               [123.61, -22.14], [122.38, -21.73], [121.06, -21.69], [119.66, -22.22], [119.00, -23.40],               [118.65, -24.76], [118.43, -26.07], [118.78, -27.56], [119.22, -28.57], [120.23, -29.49],               [121.77, -29.87], [123.57, -29.64], [124.45, -29.03], [124.71, -27.95], [124.80, -26.70],               [124.80, -25.60], [123.61, -25.64], [122.56, -25.64], [121.72, -25.72], [121.81, -26.62],               [121.86, -26.98], [122.60, -26.90], [123.57, -27.05], [123.57, -27.68], [123.35, -28.18],               [122.51, -28.38], [121.77, -28.26], [121.02, -27.91], [120.49, -27.21], [120.14, -26.50],               [120.10, -25.64], [120.27, -24.52], [120.67, -23.68], [121.72, -23.32], [122.43, -23.48],               [123.04, -24.04], [124.54, -24.28], [124.58, -23.20], [123.61, -22.14]             ]           ]         }       }     ]   };     map.data.loadGeoJson(tempObject); 

Doing that doesn't work. Is there some other way to load everything from a single object, or do I need to save them to a file / construct individual polygons using google.maps.Polygon()?

like image 288
Itinerati Avatar asked Feb 18 '15 23:02

Itinerati


1 Answers

Use the addGeoJson method of data instead of loadGeoJson. loadGeoJson expects an URL as parameter, not a GeoJSON featurecollection object.

map.data.addGeoJson(tempObject); 

Check the reference: https://developers.google.com/maps/documentation/javascript/reference#Data

like image 73
iH8 Avatar answered Sep 19 '22 22:09

iH8