jQuery Google Maps在点击时添加标记

时间:2012-06-23 08:42:27

标签: google-maps google-maps-api-3

我正在使用gmaps.js(https://github.com/hpneo/gmaps)

我想在点击地图上的某个位置时在地图上添加标记。如果用户点击第二个位置,则前一个标记应移至新位置,或者删除并替换为新标记。

现在确定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!");
        }
    });
    */
});

2 个答案:

答案 0 :(得分: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应该是一个全局变量。

答案 1 :(得分: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"
    });
});