谷歌地图动态地将标记放在我的列表框(城市,城镇)选择的地图上

时间:2009-08-21 09:31:06

标签: php javascript google-maps

我正在开设一个房产门户网站。我需要用gMap实现:/

我有一个动态列表框,我需要谷歌地图动态地在地图上标记我的城市和城镇选择......

欣赏帮助!!感谢

alt text http://img.skitch.com/20090821-txmaw93yjt5ua197t41f6k1e3u.jpg

3 个答案:

答案 0 :(得分:1)

如果您只有城市名称或地址,请使用以下功能:

var map = new GMap2(document.getElementById("map"));
var geocoder = new GClientGeocoder();

function showAddress(address) {
  geocoder.getLatLng(
    address,
    function(point) {
      if (!point) {
        alert(address + " not found");
      } else {
        map.setCenter(point, 13);
        var marker = new GMarker(point);
        map.addOverlay(marker);
        marker.openInfoWindowHtml(address);
      }
    }
  );
}

或者,如果您拥有以下所需的所有值,请使用以下代码:

var json_loc = { "locationName": "xxxx", "locationAddress": "xxxx", "latitude": xxxx, "longitude": xxxx };

如果您具有上述值,则可以使用以下功能来制作Google地图。

var map = new GMap2(document.getElementById("map"));
var point = new GLatLng(json_loc.latitude, json_loc.longitude);
var locationName = json_loc.locationName;
var locationAddress = json_loc.locationAddress;
map.setCenter(point, 14);
map.addControl(new GSmallMapControl());
map.addControl(new GMapTypeControl());
map.addOverlay(locationView.createMarker(point, locationName, locationAddress));
// Creates a marker whose info window displays the letter corresponding 
// to the given index.
createMarker: function(point, locationName, locationAddress) {
    var marker = new GMarker(point);    
    GEvent.addListener(marker, "mouseover", function() {
        marker.openInfoWindowHtml("<b>" + locationName + "</b><br>" + locationAddress);
    });
    return marker;
}

答案 1 :(得分:0)

我建议使用此扩展(JS库): http://www.pixeldevelopment.com/pdmarker.asp

对于坐标,您需要通过google API执行地理编码,以获取所需城市的正确坐标。

答案 2 :(得分:0)

这是向地图添加标记的最简单方法。

var point = new GLatLng(40,10);
var marker = new GMarker(point);
map.addOverlay(marker);