【发布时间】:2012-02-14 08:58:32
【问题描述】:
我想使用 Javascript 获取一个国家的中心坐标。是否有任何提供此类数据的 xml 文件以用于 Web 应用程序?我基本上是在尝试使用 OpenLayers 中的国家/地区名称将数据放在地图上。
【问题讨论】:
标签: javascript map openlayers
我想使用 Javascript 获取一个国家的中心坐标。是否有任何提供此类数据的 xml 文件以用于 Web 应用程序?我基本上是在尝试使用 OpenLayers 中的国家/地区名称将数据放在地图上。
【问题讨论】:
标签: javascript map openlayers
使用Google Maps API,您可以为此使用Geocoder 类。
var geocoder = new google.maps.Geocoder();
geocoder.geocode(
{ address : "Germany" },
function(results) {
window.alert(results[0].geometry.bounds.getCenter());
});
您可能需要检查results[] 数组,而不仅仅是获取索引 0,但这应该会让您朝着正确的方向开始。
【讨论】:
您可能已经下载了合适的 GIS 数据集并自己生成了您想要的信息。例如:
使用Quantum GIS 之类的程序,您可以计算每个县的质心,并根据国家名称和 x/y 生成一个表格。
请注意,Koordinates 也有一个矢量 API,可让您按位置查询要素,并可选择提取完整的几何图形:
OpenLayers 可以加载完整的几何图形并计算质心(例如OpenLayers getCentroid Docs),但考虑到世界边界数据集的大小和复杂性,性能不会很好。
将它们放在一起
您最好的选择可能是:一旦您从国家/地区获得质心,使用 Koordinates Vector API(不获取几何图形)来确定所选点位于哪个国家/地区。从响应中,通过以下方式查找质心从您的数据文件中提取名称并将地图以该位置为中心。
【讨论】: