Javascript 标记没有指向地图上

Javascript 标记没有指向地图上,javascript,php,google-maps,google-maps-api-3,Javascript,Php,Google Maps,Google Maps Api 3,数据是以正确的格式获取的,但是标记没有加载,请让我来解决这个问题 函数initMap(){ //创建地图。 var infoWindow=new google.maps.infoWindow(); var map=new google.maps.map(document.getElementById('mapView'){ 缩放:5, 中心:{lat:20.5937,lng:78.9629}, mapTypeId:“路线图” }); $.getJSON('data.php',函数(数据){ /

数据是以正确的格式获取的,但是标记没有加载,请让我来解决这个问题

函数initMap(){
//创建地图。
var infoWindow=new google.maps.infoWindow();
var map=new google.maps.map(document.getElementById('mapView'){
缩放:5,
中心:{lat:20.5937,lng:78.9629},
mapTypeId:“路线图”
});
$.getJSON('data.php',函数(数据){
//警报(数据);
警报(JSON.stringify(数据));
var标记=[];
var infowindow=[];
var contentString=[];
用于(数据中的var sd){
contentString[sd]=''+
''+
''+
''+数据[sd].hqname+''+
''+
“分区:”+数据[sd]。分区+”

'+ “From:”+data[sd]。fromareaname+”

'+ “到:”+data[sd].toareaname+“

”+ “类别:”+数据[sd].ta+“

”+ 距离:'+data[sd].dist+'

'+ “计算距离:”+数据[sd]。距离+“

”+ ''+ ''; infowindow[sd]=新建google.maps.infowindow({ 内容:contentString[sd] }); 如果(数据[sd]。类型==1){ marker[sd]=新的google.maps.marker({ 图标:'http://maps.google.com/mapfiles/ms/icons/green-dot.png', 位置:数据[sd]。中心, 地图:地图, infowindow:infowindow[sd] }); } 如果(数据[sd]。类型==2){ marker[sd]=新的google.maps.marker({ 图标:'http://maps.google.com/mapfiles/ms/icons/blue-dot.png', 位置:数据[sd]。中心, 地图:地图, infowindow:infowindow[sd] }); } } });
}
问题出在您的标记位置属性中。您没有以正确的方式定义lat/lng。它必须是一个数字(数据样本中的字符串)。它必须是
{lat:,lng:}
格式

尝试这样更新

marker[sd] = new google.maps.Marker({
                        icon: 'http://maps.google.com/mapfiles/ms/icons/blue-dot.png',
                        position: {lat : parseFloat(data[sd].center.latitude), lng : parseFloat(data[sd].center.longitude)},
                        map: map,
                        infowindow: infowindow[sd]
                    });
如您所见,我使用parseFloat将字符串值转换为浮点数


签入JSIDLE

我认为您的json无效。使json格式正确。你能创建一个JSFIDLE吗?json是有效的,我已经检查过了。我不知道FIDLE的创建@Lajos Arpadorry,添加一个事件到marker()
marker[sd]。addListener('click',function(){infowindow[sd]。open(map,marker[sd]);