Javascript 未捕获类型错误:无法读取属性';targetLat';未定义的
我只是在谷歌地图上放了一些标记,它可以按照我的要求工作,标记会按照地图上的要求显示,但是我在控制台上遇到了这个错误,我不知道为什么这个应用会在android上运行,而不是在windows phone上运行Javascript 未捕获类型错误:无法读取属性';targetLat';未定义的,javascript,html,json,ajax,google-maps,Javascript,Html,Json,Ajax,Google Maps,我只是在谷歌地图上放了一些标记,它可以按照我的要求工作,标记会按照地图上的要求显示,但是我在控制台上遇到了这个错误,我不知道为什么这个应用会在android上运行,而不是在windows phone上运行 function initMap() { var map; var faisalabad = { lat: 30.044281, lng: 31.340002 }; $('#locaitonBtn').click(function () {
function initMap() {
var map;
var faisalabad = { lat: 30.044281, lng: 31.340002 };
$('#locaitonBtn').click(function () {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function (position) {
var latlng = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
map.setCenter(latlng);
});
}
})
map = new google.maps.Map(document.getElementById('map'), {
zoom: 10,
center: faisalabad,
disableDefaultUI: true
});
$.ajax({
async:false,
url: "https://someUrl",
method: "GET",
dataType: 'json',
success: function (data) {
var infowindow = new google.maps.InfoWindow();
for (i = 0; i <= data.targets.length; i++) {
var myLatLng = new google.maps.LatLng(data.targets[i].targetLat, data.targets[i].targetLong);
myMarker = new google.maps.Marker({
map: map,
animation: google.maps.Animation.DROP,
position: myLatLng
});
google.maps.event.addListener(myMarker, 'click', (function (myMarker, i) {
return function () {
infowindow.setContent(data.targets[i].targetName);
infowindow.open(map, myMarker);
}
})(myMarker, i));
}
}
})
}
函数initMap(){
var映射;
var faisalabad={lat:30.044281,lng:31.340002};
$('#locaitonBtn')。单击(函数(){
if(导航器.地理位置){
navigator.geolocation.getCurrentPosition(函数(位置){
var latlng=新的google.maps.latlng(position.coords.latitude,position.coords.longitude);
地图设置中心(latlng);
});
}
})
map=new google.maps.map(document.getElementById('map'){
缩放:10,
中心:费萨拉巴德,
disableDefaultUI:true
});
$.ajax({
async:false,
url:“https://someUrl",
方法:“获取”,
数据类型:“json”,
成功:功能(数据){
var infowindow=new google.maps.infowindow();
对于(i=0;i$.ajax({
async:false,
url:“https://someUrl",
方法:“获取”,
数据类型:“json”,
成功:功能(数据){
var infowindow=new google.maps.infowindow();
对于(var i=0;i我无法在任何地方解决问题或找到答案,因此我将成功函数添加到了try-catch块,这样它就不会控制台错误,我现在可以在windows phone上运行应用程序了请创建一个控制台。日志(数据)在你的成功函数中。如果你没有在json中找到失败,发布这个日志元素,我会尽力帮助你。但是我认为这些字段的名称与你尝试访问的不同,或者你只是有一个typo@mtizziani我对记录的数据进行了屏幕截图,以便您可以看到我尝试了您的答案,并感谢您的帮助,但错误仍然存在re和它在这一行var mylatng=new google.maps.LatLng(data.targets[i].targetLat,data.targets[i].targetLong);
你检查过你的数组中是否有i
可用吗?console.log(data.targets.hasOwnProperty(i))
我尝试过,结果是您将找到记录的数据,3为真,3为假,3为循环中的对象数,因为我只想显示3个位置,但我不知道这是假
function initMap() {
var map;
var faisalabad = { lat: 30.044281, lng: 31.340002 };
$('#locaitonBtn').click(function () {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function (position) {
var latlng = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
map.setCenter(latlng);
});
}
})
map = new google.maps.Map(document.getElementById('map'), {
zoom: 10,
center: faisalabad,
disableDefaultUI: true
});
$.ajax({
async:false,
url: "https://someUrl",
method: "GET",
dataType: 'json',
success: function (data) {
var infowindow = new google.maps.InfoWindow();
for (i = 0; i <= data.targets.length; i++) {
var myLatLng = new google.maps.LatLng(data.targets[i].targetLat, data.targets[i].targetLong);
myMarker = new google.maps.Marker({
map: map,
animation: google.maps.Animation.DROP,
position: myLatLng
});
google.maps.event.addListener(myMarker, 'click', (function (myMarker, i) {
return function () {
infowindow.setContent(data.targets[i].targetName);
infowindow.open(map, myMarker);
}
})(myMarker, i));
}
}
})
}