データベースからマーカをレイヤーとしてGoogleマップにロードしようとしています。私はすでに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);
}
}
完璧に動作します!私はどこに私のエラーがあるかを見ます。答える時間をとってくれてありがとうと感謝しています。 –