使用cordova-plugin-geoloaction
插件我正在检索用户在其移动设备上的位置.我的onSuccess()
函数返回纬度和经度,现在我想在应用程序中显示相应的地址:
我发现了许多API(例如谷歌地图),它们提供纬度/经度转换的地址,但不是相反的方式(纬度/经度来解决).
有什么好的网络服务可供我使用吗?
您可以使用Google Maps Geocoding服务按坐标解析地址(反向地理编码)
例
function initMap() {
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 8,
center: { lat: 40.731, lng: -73.997 }
});
var geocoder = new google.maps.Geocoder;
var infowindow = new google.maps.InfoWindow;
document.getElementById('submit').addEventListener('click', function () {
geocodeLatLng(geocoder, map, infowindow);
});
}
function geocodeLatLng(geocoder, map, infowindow) {
var input = document.getElementById('latlng').value;
var latlngStr = input.split(',', 2);
var latlng = { lat: parseFloat(latlngStr[0]), lng: parseFloat(latlngStr[1]) };
geocoder.geocode({ 'location': latlng }, function (results, status) {
if (status === google.maps.GeocoderStatus.OK) {
if (results[0]) {
map.setZoom(11);
var marker = new google.maps.Marker({
position: latlng,
map: map
});
infowindow.setContent(results[0].formatted_address);
infowindow.open(map, marker);
} else {
window.alert('No results found');
}
} else {
window.alert('Geocoder failed due to: ' + status);
}
});
}
google.maps.event.addDomListener(window, 'load', initMap);
html, body {
height: 100%;
margin: 0;
padding: 0;
}
#map {
height: 100%;
}
#floating-panel {
position: absolute;
top: 10px;
left: 25%;
z-index: 5;
background-color: #fff;
padding: 5px;
border: 1px solid #999;
text-align: center;
font-family: 'Roboto','sans-serif';
line-height: 30px;
padding-left: 10px;
}