我知道他正在正确调用该功能,他们把标记没有出现在地图上
<script>
function newMarker(lat, long, id, marker){
marker = new google.maps.Marker({
map: map,
position: new google.maps.LatLng(lat, long)
});
alert(id + ' ' + lat + ' ' + long);
google.maps.event.addListener(marker, 'click', (function(marker, id) {
return function() {
infowindow.setContent('sender');
infowindow.open(map, marker);
}
})(marker, id));
}
$(function() {
$("#ads tbody tr").each(function(){
tr=$(this);
departureLatitude = tr.children('td:eq(3)').html();
departureLongitude = tr.children('td:eq(4)').html();
destinationLatitude = tr.children('td:eq(5)').html();
destinationLongitude = tr.children('td:eq(6)').html();
id = tr.children('td:eq(0)').html();
var marker;
newMarker(departureLatitude, departureLongitude, id, marker);
markers.push(marker);
});
markerCluster = new MarkerClusterer(map, markers);
});
</script>
然而,为了正确加载在字段中输入的地址标记
<script>
function loadMap(campo, endereco, marker) {
geocoder.geocode({'address': endereco + ', Brasil', 'region': 'BR'}, function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
if (results[0]) {
var lat = results[0].geometry.location.lat();
var long = results[0].geometry.location.lng();
campo.val(results[0].formatted_address);
$('#bundle_ad_' + name_campo + 'Latitude').val(lat);
$('#bundle_ad_' + name_campo + 'Longitude').val(long);
var location = new google.maps.LatLng(lat, long);
marker = new google.maps.Marker({
map: map,
title: 'Seu Destino!'
//draggable: true
});
marker.setPosition(location);
map.setCenter(location);
map.setZoom(15);
}
}
});
}
$("#bundle_ad_destination").blur(function () {
if ($(this).val() != "") {
loadMap($(this), $(this).val(), marker_destino);
}
});
</script>
我在代码的这一部分做了enstancia地图
<script>
function showGoogleMaps(){
var mapConfig = {
zoom: 15, // initialize zoom level - the max value is 21
center: new google.maps.LatLng(-7.132916, -34.82769),
streetViewControl: false, // hide the yellow Street View pegman
scaleControl: true, // allow users to zoom the Google Map
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById('googlemaps'), mapConfig);
setStyleMap();
getPosicion();
}
google.maps.event.addDomListener(window, 'load', showGoogleMaps);
</script>
警报放在那里,看看他们是否会携带信息错误或空洞但警报出现,有人帮助我?
答案 0 :(得分:1)
以下是工作代码:codepen.io
在包含lng和lat的每个单元格的末尾有一个额外的引号(“),所以它是:
-22.0040705"
而不是
-22.0040705
这导致google.maps.LatLng中的NaN,这意味着标记不会显示
你有一个窗口加载的监听器(可能是从gmaps示例中获取的),但是这个事件在文件准备就绪后触发(由jquery处理),因此newMarker()中的map未定义(下次尝试使用console.log(map)进行调试。为了解决这个问题,我在文档就绪监听器中调用了showGoogleMaps()(第491行)
您正在使用类似
的语句包装each()函数$(函数(){})
哪个不对(第509行)。
所以,一旦我完成了所有这些步骤,我就会看到地图上的标记。
希望有所帮助。