谷歌地图标记未定义

时间:2014-07-01 14:47:43

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

这是我的代码

var map_canvas = document.getElementById('map_canvas');
var map_options = { center: new google.maps.LatLng(44.5403, -78.5463), zoom: 8, mapTypeId: google.maps.MapTypeId.ROADMAP }
map = new google.maps.Map(map_canvas, map_options);


 google.maps.event.addListener(map, 'click', function(event) {
     if(marker){
         marker.setMap(null);
     }
     marker = new google.maps.Marker({
         position: event.latLng,
         map: map
     });
     $("#latitude").val(event.latLng.lat());
     $("#longitude").val(event.latLng.lng());
     map.setCenter(event.latlng);
 });

 console.log($("#longitude").val());
 if (($("#latitude").val()) && ($("#longitude").val())){
     var point = new google.maps.LatLng(($("#latitude").val()), ($("#longitude").val()));
     marker = new google.maps.marker({
         position: point,
         map: map
     });
     map.setCenter(point, 8);
 }

请注意我添加了一个监听器,点击地图上添加标记,它正在工作。我的意思是当我点击地图时,标记出现。

但是,当我提交页面时,如果输入中有错误,我会将页面返回给用户。在这种情况下,如果使用添加了地图,我想为他创建地图。这就是我使用这段代码的原因:

console.log($("#longitude").val());
if (($("#latitude").val()) && ($("#longitude").val())){
 var point = new google.maps.LatLng(($("#latitude").val()), ($("#longitude").val()));
 marker = new google.maps.marker({
     position: point,
     map: map
 });
 map.setCenter(point, 8);

然而,我在Uncaught TypeError: undefined is not a function行中遇到异常marker = new google.maps.marker({你可以帮忙吗?

1 个答案:

答案 0 :(得分:2)

确保您对Google Maps API函数名称使用正确的大小写,google.maps.marker应为google.maps.Marker