我花了很多时间来解决这个问题,并且无法弄清楚如何工作,所以这是我的基础:
<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)以便将其移动到新位置。
答案 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>