将 geoJSON 对象直接加载到 google 地图 v3
Loading a geoJSON object directly into google maps v3
我正在尝试使用存储在 mongodb 中的平面图创建地图。如果我将 JSON 放入文件中,我可以使用 map.data.loadGeoJson('myfile.json')
调用它
但是,我不想每次建图都保存一个文件,我宁愿直接写一个对象。像这样:
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);
这样做是行不通的。是否有其他方法可以从单个对象加载所有内容,或者我是否需要将它们保存到文件/使用 google.maps.Polygon()
构造单个多边形?
使用data
的addGeoJson
方法代替loadGeoJson
。 loadGeoJson
需要一个 URL 作为参数,而不是 GeoJSON 特征集合对象。
map.data.addGeoJson(tempObject);
检查参考:https://developers.google.com/maps/documentation/javascript/reference#Data
我正在尝试使用存储在 mongodb 中的平面图创建地图。如果我将 JSON 放入文件中,我可以使用 map.data.loadGeoJson('myfile.json')
但是,我不想每次建图都保存一个文件,我宁愿直接写一个对象。像这样:
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);
这样做是行不通的。是否有其他方法可以从单个对象加载所有内容,或者我是否需要将它们保存到文件/使用 google.maps.Polygon()
构造单个多边形?
使用data
的addGeoJson
方法代替loadGeoJson
。 loadGeoJson
需要一个 URL 作为参数,而不是 GeoJSON 特征集合对象。
map.data.addGeoJson(tempObject);
检查参考:https://developers.google.com/maps/documentation/javascript/reference#Data