Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 谷歌地图API | JSON错误?_Javascript_Jquery_Google Maps Api 3 - Fatal编程技术网

Javascript 谷歌地图API | JSON错误?

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

每当我尝试使用markercluster将坐标加载到我的项目时,我总是会遇到一个非常奇怪的错误。每当我将
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())