代码之家  ›  专栏  ›  技术社区  ›  Nick Fortescue

如何在Yahoo Maps API中将位置(地址)字符串转换为YGeoPoint?

  •  3
  • Nick Fortescue  · 技术社区  · 17 年前

    我有一个数据库中的地址列表,我想在雅虎地图上标记一下。这个 addMarker() method 在YMap上,需要一个YGeoPoint,这需要一个纬度和经度。然而,雅虎地图必须知道如何从地址转换,因为 drawZoomAndCenter(LocationType,ZoomLevel) 可以获取一个地址。我可以通过使用转换 drawZoomAndCenter() 然后 getCenterLatLon() 但有没有更好的方法,不需要平局?

    2 回复  |  直到 17 年前
        1
  •  1
  •   David Bick    17 年前

    您可以让map对象执行geoCoding,并捕获回调:

    <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>
    

    有一件事要注意——在这个例子中 drawAndZoom call本身会发出geoCoding请求,因此您也会从中收到回调。您可能希望将其过滤掉,或者根据GeoPoint设置地图的中心。

        2
  •  -1
  •   Paul Reiners    17 年前

    如果您使用的是美国地址,您可以使用 geocoder.us ,其中有 APIs .

    也, 谷歌地图黑客 有一个hack, "Hack 62. Find the Latitude and Longitude of a Street Address" ,为此。