Google Maps API和JavaScript问题:-(

时间:2013-12-04 18:08:04

标签: javascript json google-maps

我一直在研究谷歌地图应用程序并因为我认为缺乏知识而遇到了障碍!!

所以......这是我的JSON对象

{"pickuppoint0":"LE9 8GB","pickuppoint1":"LE2 0QA","pickuppoint2":"LE3 6AF","pickuppoint3":"LE2 8GB","pickuppoint4":"LE8 8TE","pickuppoint5":"LE2 2GB","pickuppoint6":"LE1 6AF"}

这是一个通过JSON对象的循环......

     $.each(alltravelgroups, function(k, v){ 
        for(var i=0; i < boxes.length; i++){
          var bounds = boxes[i];
          if(bounds.contains(getLatLng(v))){
            alert("im here");
          }
        }
      });

这是我创建的getLatLng()方法......

function getLatLng(pickuppoint) {
  var geocoder = new google.maps.Geocoder();
  geocoder.geocode( { 'address': pickuppoint}, function(results, status) {
    if (status == google.maps.GeocoderStatus.OK) {
     return results[0].geometry.location
    } else {
      alert('getLatLng Geocode was not successful for the following reason: ' + status);
    }
  });
}

现在......我要做的就是从每个键/值对中获取值并生成一个LatLng对象,然后可以在“bounds.contains()”方法中使用该对象在边界内进行搜索RouteBoxer类提供的框。

我遇到的问题是当使用alert(getLatLng(v))时,getLatLng方法返回的值是“undefined”,并且应该只是一个包含纬度和longitde的'location'?任何人都能指出我做错了什么?

1 个答案:

答案 0 :(得分:0)

请参阅以下链接。

http://jsfiddle.net/y829C/13/

  var mapOptions = {
                 center: new google.maps.LatLng(-33.8665433, 151.1956316),
                  zoom: 8,
                 mapTypeId: google.maps.MapTypeId.ROADMAP

             };

在上面的代码中,返回结果[0] .geometry.location中缺少分号。