【发布时间】:2016-03-31 11:46:09
【问题描述】:
我正在尝试将数据库中的标记作为图层加载到我的谷歌地图。我已经在加载 KML 图层,但我希望用户能够在我的数据库中保存和加载他们自己的自定义标记。
我的数据库结构如下:
| ID | TITLE | LAT | LON |
由于每个用户都有自己的自定义点,我想获取用户的点并将它们加载为地图上的一个图层以及其他默认图层 (KML)。我读到创建数据层将是最好的方法,并且还使用我仍然不知道如何从我的数据库创建的 geoJSON。
目前,我使用通用 json 文件只是为了查看是否可以将其添加为可切换层,但我无法正确处理。一旦我开始工作,我就可以弄清楚如何从数据库中获取结果并将其格式化为 geoJSON 并添加到地图中。
这就是我尝试将 json 数据作为可切换层获取的方式,但它不起作用:
function initMap() {
map = new google.maps.Map(document.getElementById('map'), {
center: {lat: -49.7770641, lng: 55.6602758},
zoom: 6,
mapTypeControlOptions: {
position: google.maps.ControlPosition.RIGHT_TOP
},
});
layers[0] = new google.maps.KmlLayer('http://www.example.com/kmllayer1.kml', {preserveViewport: true, suppressInfoWindows: false, zIndex: 1});
layers[1] = new google.maps.KmlLayer('http://www.example.com/kmllayer2.kml', {preserveViewport: true, zIndex: 2, suppressInfoWindows: true});
layers[2] = map.data.loadGeoJson('https://storage.googleapis.com/maps-devrel/google.json');
for (var i = 0; i < layers.length; i++) {
layers[i].setMap(map);
}
}
function toggleLayer(i) {
if(layers[i].getMap() === null) {
layers[i].setMap(map);
}
else {
layers[i].setMap(null);
}
}
【问题讨论】:
标签: javascript json google-maps google-maps-api-3