每当我尝试使用markercluster将坐标加载到我的项目时,我都会遇到一个非常奇怪的错误。每当我将google.maps.LatLng
添加到lat和lng我从JSON文件中提取时,它会将其转换为以下错误。现在我要做的就是将坐标记录到控制台。我从来没有见过这个,希望有人可以帮助我。
这是我的JSON文件加载的内容:
_.Ge {__gm: {…}, gm_accessors_: {…}, position: _.F, gm_bindings_: {…}, clickable: true, …}
这是我的代码
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
}
}
]
}
答案 0 :(得分:0)
您正在注销标记,该标记是Google Marker
对象的一个实例。那不是错误。如果你想获得坐标,你需要具体询问它们:
console.log(marker.getPosition())
返回LatLng
个对象。可能也不是你想要的。因此,您需要将其记录为可读的内容:
console.log(marker.getPosition().toString())
// alternatively
console.log(marker.getPosition().toJSON())
标记对象的Here's the full api(实际上是所有对象。)