我想知道是否有人可以建议我如何获取英国县的坐标,以便能够使用Google Maps API向Google地图添加多边形?
我已经看过使用https://nominatim.openstreetmap.org/details.php?place_id=198164455来检索OSM关系以便能够使用http://polygons.openstreetmap.fr/
例如:莱斯特郡OSM = 189890
http://polygons.openstreetmap.fr/index.py?id=189890
我使用了该区域的坐标,但是我相信这些坐标是不正确的,因为多边形出现在海中而不是在县上空。
任何人都可以建议我如何获取英国各县的坐标以添加多边形吗?我不确定是否有任何工具可以为您生成这些工具?
我的代码: (莱斯特郡(var leicestershire)应该具有该县的坐标)
function initialize() {
var pin = new google.maps.LatLng(52.374490, -0.713289);
var map = new google.maps.Map(document.getElementById('map-canvas'), {
zoom: 5,
//minZoom: 15,
//maxZoom: 15,
center: pin,
mapTypeId: google.maps.MapTypeId.ROADMAP,
overviewMapControl:true,
mapTypeControl:false,
zoomControl: true,
streetViewControl: false,
draggable: true
});
var marker = new google.maps.Marker({
position: pin,
map: map
});
var leicestershire = [];
var leicestershirePoly = [];
leicestershire.forEach(function(coordinate) {
var latlng = coordinate.split(",");
var lat = parseFloat(latlng[0]);
var lng = parseFloat(latlng[1]);
if(!isNaN(lat) && !isNaN(lng)) {
leicestershirePoly.push({lat: lat, lng: lng});
}else{
console.log(coordinate);
}
});
var leicesterRegion = new google.maps.Polygon({
paths: leicestershirePoly,
strokeColor: '#FF0000',
strokeOpacity: 0.8,
strokeWeight: 2,
fillColor: '#FF0000',
fillOpacity: 0.35
});
leicesterRegion.setMap(map);
}
google.maps.event.addDomListener(window, 'load', initialize);
答案 0 :(得分:1)
莱斯特郡在Google Maps中解析为52.772571, -1.2052126
。示例多边形的第一行坐标为-1.5975472, 52.7004047
,因此显然,经度和纬度是倒置的。
在您的forEach
循环中,替换
var lat = parseFloat(latlng[0]);
var lng = parseFloat(latlng[1]);
作者
var lat = parseFloat(latlng[1]);
var lng = parseFloat(latlng[0]);
如果您其余的代码都在工作,那应该足以解决该问题。