1

gmaps.js(https://github.com/hpneo/gmaps)を使用しています

地図上の場所をクリックすると、地図上にマーカーを追加したいと思います。ユーザーが2番目の場所をクリックすると、前のマーカーが新しい場所に移動するか、削除されて新しいマーカーに置き換えられます。

これがLibによってサポートされているかどうかを確認してください。

http://bakasura.in/startupsradar/add.html

$(document).ready(function () {
    var map = new GMaps({
        div: '#map',
        lat: 13.00487,
        lng: 77.576729,
        zoom: 13
    });

    map.addMarker({
        lat: 13.00487,
        lng: 77.576729,
        title: 'Mink7',
        infoWindow: {
            content: 'HTML Content'
        }
    });
    /*
    GMaps.geolocate({
        success: function (position) {
            map.setCenter(position.coords.latitude, position.coords.longitude);
        },
        error: function (error) {
            alert('Geolocation failed: ' + error.message);
        },
        not_supported: function () {
            alert("Your browser does not support geolocation");
        },
        always: function () {
            //alert("Done!");
        }
    });
    */
});
4

2 に答える 2

3
google.maps.event.addListener(_map, "click", function(event) {
    if(_marker) {
        _marker.setPosition(event.latLng);
    } else {  
        _marker = new google.maps.Marker({
            position: event.latLng,
            map: _map,
            title: "myTitle"
        });
    }
});

他の答えを見たばかりです。毎回マーカーを作成したくない場合は、これを使用してください _marker。グローバル変数である必要があります。

于 2012-06-23T09:08:14.700 に答える
2

個人的には、マーカーのグローバル変数(または、さらにマーカーが必要で、後でアクセスしたい場合は配列)を使用して実行するので、マーカーを削除して別の場所で再作成できます。

// instantiate your var map
// ...

google.maps.event.addListener(map, "click", function(event) {
    if(markermap) {
        markermap.setMap(null);
    }

    markermap = new google.maps.Marker({
        position: event.latLng,
        map: myMap,
        title: "myTitle"
    });
});
于 2012-06-23T08:55:47.077 に答える