【发布时间】:2011-09-29 11:17:32
【问题描述】:
我是谷歌地图的新手,想使用谷歌地图 JavaScript API 将房屋显示为标记。我希望一个人能够在地图上单击以放置标记,可以再次单击以将其删除或拖动到地图上的另一个位置。然后,我希望脚本获取坐标(纬度和经度),以便将其添加到数据库表中。知道我应该怎么做吗?我在 codeIgniter 中使用 PHP。
【问题讨论】:
标签: google-maps google-maps-api-3
我是谷歌地图的新手,想使用谷歌地图 JavaScript API 将房屋显示为标记。我希望一个人能够在地图上单击以放置标记,可以再次单击以将其删除或拖动到地图上的另一个位置。然后,我希望脚本获取坐标(纬度和经度),以便将其添加到数据库表中。知道我应该怎么做吗?我在 codeIgniter 中使用 PHP。
【问题讨论】:
标签: google-maps google-maps-api-3
一个好的起点是查看参考手册:http://code.google.com/apis/maps/documentation/javascript/reference.html
如果您查看那里的地图,您会发现它有一个名为“click”的事件。您所做的是在地图初始化后创建一个事件侦听器,它侦听单击事件。发生这种情况时,您可以在该位置放置一个标记,并在该标记上为单击事件添加一个事件侦听器(如果您想将其移除),或者如果您想拖动它,则使其可拖动。
如果您想再次使用标记所保存的信息,请记住将标记存储在数组中。
我希望这会有所帮助。
【讨论】:
我迟到了。请在下面找到代码片段。
/* Always set the map height explicitly to define the size of the div
* element that contains the map. */
#map {
height: 100%;
}
/* Optional: Makes the sample page fill the window. */
html, body {
height: 100%;
margin: 0;
padding: 0;
}
<div id="map"></div>
<script>
var map;
function initMap() {
map = new google.maps.Map(document.getElementById('map'), {
center: {lat: -34.397, lng: 150.644},
zoom: 8
});
var marker;
map.addListener('click', function(e) {
if(marker){
var latlng = new google.maps.LatLng(e.latLng.lat(), e.latLng.lng());
marker.setPosition(latlng);
}else{
marker = new google.maps.Marker({
position: {lat : e.latLng.lat(), lng : e.latLng.lng()},
map: map
})
}
alert("lat : "+e.latLng.lat()+ "; lng : "+e.latLng.lng())
});
}
</script>
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDNPpCPQOwkMotaDj0IgHQ7HDAE8cz6-4U&callback=initMap"
async defer></script>
【讨论】: