2010-10-21 49 views
0

首先这里是我的代码有问题:GMAP v3和JS不打漂亮

var geocoder; 
    var map; 

    geocoder = new google.maps.Geocoder(); 
    var latlng = new google.maps.LatLng(-34.397, 150.644); 
    var myOptions = { 
     zoom: 18, 
     center: latlng, 
     mapTypeId: google.maps.MapTypeId.HYBRID 
    } 
    map = new google.maps.Map(document.getElementById("details"), myOptions); 

    var q = $("span#address").text() + ' ' + $("span#city").text() + ' ' +$("span#state").text() + ' ' +$("span#zip").text(); 
    var t = document.getElementById('address').value; 
    console.log(t); 
    //var city = document.getElementById("home-city").value; 
    //console.log(city); 
    geocoder.geocode({ 'address': t}, function(results, status) { 
     if (status == google.maps.GeocoderStatus.OK) { 
      map.setCenter(results[0].geometry.location); 
      var marker = new google.maps.Marker({ 
       map: map, 
       //draggable: true, 
       position: results[0].geometry.location 
      }); 
     } else { 
      console.log("Geocode was not successful for the following reason: " + status); 
     } 
    }); 

好了,我的问题是,我可以加载到geocoder.geocode()可变这样

var address = "string address"; 

我想从特定页面抓取地址并将地址存储在一个var中,然后将该var传递给Gmaps,并且在完美的世界中这应该起作用!但它似乎没有这样的世界;-(

所以我做了一些测试,足够有趣...

var q = $("span#address").text() + ' ' + $("span#city").text() + ' ' +$("span#state").text() + ' ' +$("span#zip").text(); 

的作品时,我做了的console.log(地址),我得到的地址outputed 。但是我不能将变量地址插入到地理编码中,因为它不会识别它。其次,我尝试了很好的常规JavaScript方法,并尝试使用地址唯一标识符来获取元素的val。Firebug和地理编码错误tell我认为值是NULL ...

所以我很困惑,jQuery可以抓取数据,但不能传入地理编码。然后正常的JavaScript告诉我我疯了,有没有在数据领域我试图通过ID参考...

任何人都得到了这样的情况下工作?

嗯,也许我应该提一下,我有所有这些代码在jQuery实时点击功能上执行。当用户点击地图图标时,所有此代码将假定执行...

回答

0

所以,问题是,我是第一个宣布谷歌地图,然后尝试引用地址信息的价值。我在创建一个新的谷歌地图api引用之前将var地址移至顶端。

0
  • 使用逗号而不是空格来分隔值。
  • 确保您只有一个带有“地址”id的HTML元素。
  • getElementById()检索,使用.value拿到元件(未.val
+0

是的,我使用.value,并给它一个随机数字ID只是为了确保我没有错,并且已经有一个具有相同ID的元素。但我仍然无效。并做了逗号事情 – Eli 2010-10-21 07:07:31