Gmap v3和js打得不好玩

时间:2010-10-21 06:59:53

标签: javascript jquery google-maps-api-3

首先,这是我的问题代码:

    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(地址)时,我的地址输出了。但是我无法将变量地址插入到地理编码中,因为它无法识别它。其次,我尝试了旧的常规javascript方法,并尝试使用唯一的地址id获取元素的val。 Firebug和地理编码错误告诉我该值为NULL ...

所以我很困惑,jQuery可以抓取数据,但无法传递到地理编码中。然后定期的javascript告诉我,我很疯狂,我在尝试通过id引用的字段中没有数据......

任何人都有这样的场景吗?

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

2 个答案:

答案 0 :(得分:0)

  • 使用逗号代替空格来分隔值。
  • 确保您只有一个带有“地址”id的HTML元素。
  • 使用getElementById()检索时,使用.value获取元素的值(不是.val

答案 1 :(得分:0)

所以问题是我首先声明谷歌地图然后尝试引用地址信息。在创建新的Google地图API参考之前,我将var地址移到了顶部。