单击按钮时移动谷歌地图标记

时间:2014-04-17 15:09:20

标签: javascript google-maps

我花了很多时间来解决这个问题,并且无法弄清楚如何工作,所以这是我的基础:

<script>
 function initialize() {
        var mapOptions = {
          center: new google.maps.LatLng("43.2697,26.9165"),
          zoom: 8  };
        var map = new google.maps.Map(document.getElementById("map_canvas"),mapOptions);
        var marker=new google.maps.LatLng("43.2697,26.9165");
        var main=new google.maps.Marker({position:marker});
        main.setMap(map); 
      }  


        function moveMarker(lat,lng) {
           var latlng = new google.maps.LatLng(parseFloat(lat), parseFloat(lng)); 
        //???????
            }


    google.maps.event.addDomListener(window, 'load', initialize);
</script>

现在 - 在HTML中我有一个按钮和两个文本字段。单击按钮时,它会触发moveMarker函数并传递新的经度和纬度 - 在字段中输入。目标是标记必须移动到新位置,并且地图必须居中 - 相应地。我尝试了很多提示,但是 - 无法访问标记对象(在我的例子中名为Main)以便将其移动到新位置。

1 个答案:

答案 0 :(得分:2)

您的标记(&#34; main&#34;)是初始化文件的本地标记。要从HTML单击事件访问它,它需要位于全局范围内。

<script>
var main = null;
function initialize() {
    var mapOptions = {
          center: new google.maps.LatLng("43.2697,26.9165"),
          zoom: 8  };
    var map = new google.maps.Map(document.getElementById("map_canvas"),mapOptions);
    var marker=new google.maps.LatLng("43.2697,26.9165");
    main=new google.maps.Marker({position:marker});
    main.setMap(map); 
}  


function moveMarker(lat,lng) {
  var latlng = new google.maps.LatLng(parseFloat(lat), parseFloat(lng)); 
  main.setPosition(latlng);
}


google.maps.event.addDomListener(window, 'load', initialize);
</script>