如何从中心(pan)谷歌地图API获取地址
How to get address from center (pan) Google Maps API?
我正在构建一个谷歌地图,您可以在其中获得表单的时间,长度和地址。它通过GPS获取你的位置,并自动将地图居中,获取坐标。如果你平移地图,你会从新的中心得到这些数据。
我看到过一个类似的问题,如何从一个拖拽的标记在谷歌版本地图中获得格式化的地址,从一个可拖拽的标记。我想看看反向地理编码服务是否有可能在我平移它的时候让它在地图的中心。
下面是部分代码:
google.maps.event.addListener(map, "center_changed", function() {
var lat = map.getCenter().lat();
var lng = map.getCenter().lng();
$('#lat').val(lat);
$('#lng').val(lng);
});
...
<body>
<div id="map-canvas"></div>
<input id="lat"/>
<input id="lng"/>
</body>
现在我可以得到坐标了。这里你可以看到我的地图。http://output.jsbin.com/vopuhu
这张地图和优步用来接送顾客的地图很像。
谢谢!
这里是地理位置部分也…
if(navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position) {
var pos = new google.maps.LatLng(position.coords.latitude,
position.coords.longitude);
document.getElementById('lat').value = position.coords.latitude;
document.getElementById('lng').value = position.coords.longitude;
var marker = new google.maps.Marker({
map: map,
position: pos,
title: 'Ubicación GPS',
icon:'https://storage.googleapis.com/ops_geojson/Flecker/Icons/GPS_Tiny01.png'
});
map.setCenter(pos);
}, function() {
handleNoGeolocation(true);
});
} else {
handleNoGeolocation(false);
}
}
function handleNoGeolocation(errorFlag) {
if (errorFlag) {
var content = 'Error: The Geolocation service failed.';
} else {
var content = 'Error: Your browser doesn''t support geolocation.';
}
var options = {
map: map,
position: new google.maps.LatLng(19.043516, -98.198232),
content: content,
};
var infowindow = new google.maps.InfoWindow(options);
map.setCenter(options.position);
}
您可以使用reverseGeocoder
google.maps.event.addListener(map, "center_changed", function() {
var lat = map.getCenter().lat();
var lng = map.getCenter().lng();
$('#lat').val(lat);
$('#lng').val(lng);
var myLatLng = new google.maps.LatLng(lat, lng);
gmgeocoder = new google.maps.Geocoder();
gmgeocoder.geocode({'latLng': myLatLng}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
if (results[0]) {
if(results[0].formatted_address.length>64){
document.getElementById(aElementId).innerHTML = results[0].formatted_address.substring(0,64)+'...';
}
else {
document.getElementById(aElementId).innerHTML = results[0].formatted_address;
//console.log(results[0].formatted_address);
}
}
}
else {
document.getElementById(aElementId).innerHTML = "Geocoder not possible";
}
});
}
相关文章:
- 谷歌地图API v3不适用于移动浏览器或PhoneGap
- 标记的实时更新,无需加载页面谷歌地图API V3
- 覆盖在赢得'不允许点击下面的标记,谷歌地图api v3
- 谷歌地图Api和JS代码不工作
- 谷歌地图API-InfoBubble赢得't关闭-关闭()不会'不起作用
- 如何在多承诺链中处理谷歌地图API V3事件
- 谷歌地图api和gMapsLatLonPicker
- 谷歌地图API-“;toGeoJson”;返回几何体为null的对象
- 谷歌地图API v3:Initial View is Fine,but Gray Box with No Map if
- 为什么谷歌地图API's方法未从RequireJS中正确调用
- 使用谷歌地图api计算距离并将其设置在表格中<td>
- 使用谷歌地图API和phonegap显示当前位置+方向
- 使用谷歌地图api v3自动完成字段(法国大道、邮编、城市)
- 谷歌地图API标记没有标记我的位置
- 使用谷歌地图api 3为MapTypeId.TERRAIN分离按钮
- 在JQuery中使用谷歌地图Api事件/侦听器
- 在Ionic应用程序上使用$.getScript加载谷歌地图Api
- 我该如何解决“;未捕获引用错误:谷歌没有定义"?(谷歌地图API)
- 谷歌地图API-显示具有不同图标的标记
- 如何停止地图移动时,鼠标悬停在标记在谷歌地图API 3