Javascript 谷歌地图API | JSON错误?
每当我尝试使用markercluster将坐标加载到我的项目时,我总是会遇到一个非常奇怪的错误。每当我将Javascript 谷歌地图API | JSON错误?,javascript,jquery,google-maps-api-3,Javascript,Jquery,Google Maps Api 3,每当我尝试使用markercluster将坐标加载到我的项目时,我总是会遇到一个非常奇怪的错误。每当我将google.maps.LatLng添加到lat,我从JSON文件中提取lng时,它会将其转换为以下错误。现在我要做的就是把坐标记录到控制台上。我从没见过这个,希望有人能帮我 这是我的JSON文件加载的内容: 这是我的密码 function initMap(){ var usa = new google.maps.LatLng(37.090240, -95.712891); var
google.maps.LatLng
添加到lat,我从JSON文件中提取lng时,它会将其转换为以下错误。现在我要做的就是把坐标记录到控制台上。我从没见过这个,希望有人能帮我
这是我的JSON文件加载的内容:
这是我的密码
function initMap(){
var usa = new google.maps.LatLng(37.090240, -95.712891);
var mapZoom = 4;
var markers = [];
var stateLat = [];
var stateCoord = [];
console.log(stateCoord);
markStates(stateCoord);
var options = {
'zoom': mapZoom,
'center': usa,
'styles': styles
};
var map = new google.maps.Map(document.getElementById("map"), options);
//var latLng = new google.maps.LatLng(markers);
//var marker = new google.maps.Marker({'position': markers});
// var markerCluster = new MarkerClusterer(map, markers);
var markerCluster = new MarkerClusterer(map, stateCoord);
}
function markStates(sets){
var coordLink = 'http://xxxxxx/xxx-xxxxxx/_json/states-coord.json';
$.ajax({
url: coordLink,
type: 'GET',
dataType: 'json'
})
.done(function() {
//console.log("success states loaded");
$.getJSON(coordLink, function(data){
$.each(data.usa, function(index, el) {
var latLng = new google.maps.LatLng(el.coordinates.lat, el.coordinates.lng);
var marker = new google.maps.Marker({position: latLng});
//var latLng = [lat, lng];
sets.push(marker);
});
});
})
.fail(function() {
console.log("error on states");
});
}
JSON文件示例:
{
"usa": [{
"state": "Alabama",
"stateInit": "AL",
"coordinates": {
"lat": 32.806671, "lng": -86.791130
}
},
{
"state": "Alaska",
"stateInit": "AK",
"coordinates": {
"lat": 61.370716, "lng": -152.404419
}
}
]
}
您正在注销marker,它是google
marker
对象的一个实例。这不是一个错误。如果要获得坐标,需要特别询问:
console.log(marker.getPosition())
返回一个LatLng
对象。可能也不是你想要的。因此,您需要将其记录到可读的日志中:
console.log(marker.getPosition().toString())
// alternatively
console.log(marker.getPosition().toJSON())
对于标记对象(实际上是所有对象)。
这就是加载的内容
-为什么这么说?在$之前,是否有console.log(数据)
(data.usa
?我看到的唯一一个console.log是用于标记的,看起来也是这样,为什么要使用$.ajax作为url,然后使用$.getJSON作为同一url?对相同数据的两个请求似乎是错误的。这是非常粗糙的代码。当我说loaded时,我指的是控制台显示的内容。即使我使用console.log(latLng);
{lat:ƒ,lng:ƒ}在控制台中。是的,你会在latLng中得到它…你的数据在data.usa
-当你console.log(data.usa)
甚至console.log(data)时会发生什么
…你会看到你的数据…很明显。记录数据没有任何作用。问题是什么。你的标题是json错误。你会得到什么json错误。当我尝试记录时,我在控制台中也会得到这个。{lat:ƒ,lng:ƒ}
是的,因为它是一个google对象,与您在realityLogging中的数据无关,哪个?marker.getPosition()
返回一个LatLng
对象。如果你想得到坐标,你必须要求得到它们。这就是为什么我显示了3个不同的日志语句。api文档很有用。下面第7行是一个stateCoord的日志,我想它会在我的JSON文件中包含lat和lng,但是我得到了其他类似这样的奇怪数据,gm_访问器:{…},位置:.F,gm_绑定:{…},可单击:true,}`
console.log(marker.getPosition().toString())
// alternatively
console.log(marker.getPosition().toJSON())