谷歌地图API和JavaScript问题:-(

Google Maps API and JavaScript Issues :-(

本文关键字:问题 JavaScript API 谷歌地图      更新时间:2024-03-16

我一直在开发谷歌地图应用程序,但由于缺乏js方面的知识,我遇到了一个障碍,我认为呢?!

所以。。。这是我的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))时,getLatLg方法返回的值是"未定义的",应该只是一个包含纬度和经度的"位置"吗?有人能指出我做错了什么吗?

请参阅下面的链接。

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.