アプリケーションに Google Maps API 3 を使用しています。
では、やりたいことは次へ。ページの読み込み時に、次の形式で位置の配列を取得します。
var locations = [
['Bondi Beach', -33.890542, 151.274856, 4],
['Coogee Beach', -33.923036, 151.259052, 5],
['Cronulla Beach', -34.028249, 151.157507, 3],
['Manly Beach', -33.80010128657071, 151.28747820854187, 2],
['Maroubra Beach', -33.950198, 151.259302, 1]
];
まず、この位置のそれぞれにマーカーを追加したい
var marker, i;
for (i = 0; i < locations.length; i++) {
marker = new google.maps.Marker({
position: new google.maps.LatLng(locations[i][1], locations[i][2]),
map: map
});
マーカーに貼る画像:
var image = new google.maps.MarkerImage("images/truck3.png",
new google.maps.Size(32.0, 37.0),
new google.maps.Point(0, 0),
new google.maps.Point(16.0, 18.0)
);
var shadow = new google.maps.MarkerImage("images/shadow-truck3.png",
new google.maps.Size(51.0, 37.0),
new google.maps.Point(0, 0),
new google.maps.Point(16.0, 18.0)
);
var marker = new google.maps.Marker({
position: map.getCenter(),
map: map,
icon: image,
shadow: shadow,
title: 'Click to zoom'
});
そして、これは画面の中央で初期化されたすべてのマーカーをズームする必要がありますが、ユーザーが地図上の何か他のものを見るために魚を釣る可能性があるため、後で中央で最初に 1 回だけ使用されます。
マーカーを常に移動させたいので、常に新しい位置を取得するためにイベント ハンドラーを追加する必要がありますか?
次に、マーカーをクリックするとズームされ、マーカーはまだ移動しています(新しい位置を取得しています)が、php配列で送信するそのIDを使用する必要があるため、そのパラメーターでいくつかのphp関数を呼び出すことができます.
その後、ユーザーが横にあるボタンをクリックすると、リクエストの最初に来ることができるようになり、画面の中央にマーカーがロードされます。
クリックのある部分:
google.maps.event.addListener(marker, 'click', function() {
map.setZoom(13);
map.setCenter(marker.getPosition());
google.maps.event.addListener(map, 'center_changed', function() {
// 1 seconds after the center of the map has changed, pan back to the
// marker.
window.setTimeout(function() {
map.panTo(marker.getPosition());
}, 1000);
});
});
}
だから基本的に、私が達成したいことはすべてあなたに話しました。多くの人が同じことをしたと確信しています. これらは、多くのソースからのコードの一部であり、それらを連携させて、上で書いたようにいくつかの小さな新機能を追加する必要があります。
ありがとうございました