10

我正在尝试创建一个按钮,该按钮将向显示的现有谷歌地图添加标记。

function initialize()
{
    geocoder = new google.maps.Geocoder();
    codeAddress();
}



function codeAddress()
{
    var image_icon = 'http://www.google.com/intl/en_us/mapfiles/ms/micons/blue-dot.png';
    var address = document.getElementById("type_location").value;

    geocoder.geocode( { 'address': address}, function(results, status) {
        if (status == google.maps.GeocoderStatus.OK) {

            var mapOptions = {
            zoom: 11,
            center: results[0].geometry.location,
            mapTypeId: google.maps.MapTypeId.ROADMAP
            }

        map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);

            var marker = new google.maps.Marker({
                map: map,
                position: results[0].geometry.location,
                icon: image_icon
            });

        }           

    });

}

我很新,我希望有人可以帮助我。

如果我有这样的东西来显示我的地图:

$(document).ready(function() {  

var coord = $(".address").attr("data-coordinates"); //this displays lat,lng (example: 32.000,-118.000)

var geocoder;
var map;    
initialize();
$(".add_marker").click(function(){

    // this is where I should add a marker?
});

});
4

2 回答 2

20

幸运的你!

我有一个工作示例,可以完全满足您的要求:)

查看完整代码并在此处进行测试:http: //jsfiddle.net/RASG/vA4eQ/
只需单击“添加标记”按钮

这是相关代码:

var latlng = new google.maps.LatLng(42.745334, 12.738430);

function addmarker(latilongi) {
    var marker = new google.maps.Marker({
        position: latilongi,
        title: 'new marker',
        draggable: true,
        map: map
    });
    map.setCenter(marker.getPosition())
}

$('#btnaddmarker').on('click', function() {
    addmarker(latlng)
})
于 2012-11-07T10:47:37.277 回答
2

地图的 HTML

<div id="map" style="width:100%;height:500px" ></div>

用于加载地图和标记的 javascript

function myMap() {
    var myCenter = new google.maps.LatLng(28.214461283939166,83.95801313236007);
    var map_Canvas = document.getElementById("map");
    var mapOptions = {center: myCenter, zoom: 14,mapTypeId:google.maps.MapTypeId.HYBRID};
    var map = new google.maps.Map(document.getElementById("map"), mapOptions);
    google.maps.event.addListener(map, 'click', function(event) {
        document.getElementById("latitude").value = map.getCenter().lat(); 
        document.getElementById("longitude").value = map.getCenter().lng(); 
      place_Marker(map, event.latLng);

    });

  }
  var marker;
  function place_Marker(map, location) {
      if(marker){
          marker.setPosition(location);
      }else{
      marker = new google.maps.Marker({
      draggable:true,
      position: location,
      animation: google.maps.Animation.DROP,
      map: map
    });
  }

    var infowindow = new google.maps.InfoWindow({
      content: 'Latitude: ' + location.lat() + '<br>Longitude: ' + location.lng()
    });

    infowindow.open(map,marker);

  }
于 2017-02-21T07:10:56.777 回答