我有一张地图加载.
我想添加一个标记,它从文本框中拉长和长度,我不能理解它.
我想添加一个标记,它从文本框中拉长和长度,我不能理解它.
当我点击updatemap按钮时,没有任何事情发生.
这是我的代码到目前为止
$(document).ready(function () { alert("Dom,dom dom dom dom"); var map; var marker; function initialize() { var myLatlng = new google.maps.LatLng(40.65,-74); var myOptions = { zoom: 2,center: myLatlng,mapTypeId: google.maps.MapTypeId.ROADMAP,} var map = new google.maps.Map(document.getElementById('map_canvas'),myOptions); } $("#updateMap").click(function(){ var newLatLng = new google.maps.LatLng(lat,lng); marker.setPosition(newLatLng); var lat = parseFloat(document.getElementById('markerLat').value); var lng = parseFloat(document.getElementById('markerLng').value); var newLatLng = new google.maps.LatLng(lat,lng); marker = new google.maps.Marker({ position: newLatLng,map: map,draggable: true }); }); }); // Onload handler to fire off the app. google.maps.event.addDomListener(window,'load',initialize); });
解决方法
更新
此外,您的全局映射引用从未设置为实际的映射实例,因为您使用本地var相同的名称进行映射.
var map = new google.maps.Map(document.getElementById('map_canvas'),myOptions);
这应该是
map = new google.maps.Map(document.getElementById('map_canvas'),myOptions);
在初始化之前,您将使用lat和lng作为标记位置(除非它们全局设置在某处):
var newLatLng = new google.maps.LatLng(lat,lng); marker.setPosition(newLatLng);
如果你想更新同一个标记的位置,而不是创建一个新的位置,你应该这样做:
$("#updateMap").click(function(){ var lat = parseFloat(document.getElementById('markerLat').value); var lng = parseFloat(document.getElementById('markerLng').value); var newLatLng = new google.maps.LatLng(lat,lng); marker.setPosition(newLatLng); });