1

新しいマーカーをGoogleマップに追加するこの機能があります。

しかし、センターは機能しません。何かアドバイスはありますか?

function addMarker(lat, lng, name){
    new google.maps.Marker({
        map: map,
        icon: image,
        position: new google.maps.LatLng(lat, lng),
        title: name,
        center: new google.maps.LatLng(lat, lng),
        zoom: 6
    });
}

しかし、うまくいきcenterません。

4

1 に答える 1

5

Google Maps API を介して新しいマーカー オブジェクトを作成する場合、マップ オブジェクトのsetCenter関数を呼び出して、マーカーの位置を渡すことができます。

map.setCenter(marker.position);

これにより、マップがマーカーの中央に配置されます。

プロセスをアニメーション化する場合は、panTo代わりに次を使用します。

map.panTo(marker.position);

Marker オブジェクトのコンストラクターで設定しようとしているcenterおよびプロパティが存在しないことにも注意してください。zoomこれらはマップ オブジェクト自体のプロパティであり、そこで設定する必要があります。

私は次のようなものを想像します:

function addMarker(lat, lng, name)
{ 
    var newMarker = new google.maps.Marker({ map: map, 
                                             icon: image, 
                                             position: new google.maps.LatLng(lat, lng), 
                                             title: name });
    map.setCenter(newMarker.position);
    map.setZoom(6);
}

また、「グローバル」スコープ オブジェクトを使用する代わりに、パラメータ リストにmapandを追加することも検討します。そうしないと、関数をまったく使用しなくなります。それは一種のこだわりであり、コードの必要性に依存します。imageaddMarker

詳細はこちら

于 2012-10-22T23:30:34.630 に答える