使用谷歌地图和地址的JQuery代替纬度和经度

时间:2011-11-24 17:24:07

标签: jquery google-maps

直到今天,我还在使用这样的GMaps:

var map = new GMap2(document.getElementById("map_canvas"));
        map.setCenter(new GLatLng(latitude, longitude), 15);
        map.addOverlay(new GMarker(new GLatLng(latitude, longitude)));
        map.setUIToDefault();

但是,现在我需要设置中心并使用完整地址(字符串)添加叠加层,而不是使用纬度和经度。

我该怎么做?

谢谢。

1 个答案:

答案 0 :(得分:2)

找到它。

如果有人有兴趣,这就是方式:

JS:

function initializate() {
    if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map_canvas"));
        map.addControl(new GSmallMapControl());
        map.addControl(new GMapTypeControl());
        var center = new GLatLng(48.89364, 2.33739);
        map.setCenter(center, 15);
        geocoder = new GClientGeocoder();
        var marker = new GMarker(center, {
            draggable: true
        });
        map.addOverlay(marker);

    }
}

function showAddress(address) {
    var map = new GMap2(document.getElementById("map_canvas"));
    map.addControl(new GSmallMapControl());
    map.addControl(new GMapTypeControl());
    if (geocoder) {
        geocoder.getLatLng(
            address,
            function(point) {
                if (!point) {
                    alert(address + " not found");
                } else {
                    map.clearOverlays()
                    map.setCenter(point, 16);
                    var marker = new GMarker(point, {
                        draggable: false
                    });
                    map.addOverlay(marker);
                }
            }
            );
    }
}

然后我打电话给:

initializate();
showAddress($(".hotel_location").html()); //Addres as a string

那就是它=)