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

StackOverflow https://stackoverflow.com/questions/73524

  •  09-06-2019
  •  | 
  •  

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

有帮助吗?

解决方案

您可以要求地图对象进行地理编码,并捕获回调:

<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 调用本身会发出地理编码请求,因此您也会从中获得回调。您可能想要过滤掉它,或者根据 GeoPoint 设置地图的中心。

其他提示

如果您与美国合作地址,您可以使用 美国地理编码器, , 其中有 蜜蜂.

还, 谷歌地图黑客 有一个黑客, “黑客62。查找街道地址的纬度和经度”, , 为了那个原因。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top