3

Yahoo マップにマーカーを配置したいデータベースの住所のリストがあります。YMapのaddMarker()メソッドは、緯度と経度を必要とする YGeoPoint を取ります。ただし、Yahoo マップは住所を取得できるため、住所から変換する方法を知っている必要がdrawZoomAndCenter(LocationType,ZoomLevel)あります。drawZoomAndCenter()thenを使用して変換できgetCenterLatLon()ますが、ドローを必要としないより良い方法はありますか?

4

2 に答える 2

1

マップ オブジェクトにジオコーディングを実行するように要求し、コールバックをキャッチできます。

<script type="text/javascript"> 
var map = new YMap(document.getElementById('map'));
map.drawZoomAndCenter("Algeria", 17);

map.geoCodeAddress("Cambridge, UK");

YEvent.Capture(map, EventsList.onEndGeoCode, function(geoCode) {
    if (geoCode.success)
        map.addOverlay(new YMarker(geoCode.GeoPoint));
});
</script>

注意すべき点が 1 つあります。この例では、drawAndZoom呼び出し自体が geoCoding 要求を行うため、そこからもコールバックを取得します。それを除外するか、GeoPoint に基づいてマップの中心を設定することができます。

于 2008-09-17T09:47:11.630 に答える
-1

米国の住所を扱っている場合は、APIを備えたgeocoder.usを使用できます。

また、Google Maps Hacksには「Hack 62. 住所の緯度と経度を調べる」というハックがあります。

于 2008-09-16T15:32:18.703 に答える