如何在我的网站上向 Google 地图小部件添加用户输入标记,并从中获取纬度和经度数据?
Posted
技术标签:
【中文标题】如何在我的网站上向 Google 地图小部件添加用户输入标记,并从中获取纬度和经度数据?【英文标题】:How do I add a user-input marker to Google Maps widget on my website, and get the latitude and longitude data from it? 【发布时间】:2020-04-18 15:52:09 【问题描述】:现在我正在构建一个应用程序,它必须允许用户将标记放置到任何位置,以便我可以获取该数据并进行处理。
<script>
var map;
function initMap()
map = new google.maps.Map(document.getElementById('map'),
zoom: 2,
center: new google.maps.LatLng(2.8,-187.3),
mapTypeId: 'terrain'
);
// Create a <script> tag and set the USGS URL as the source.
var script = document.createElement('script');
// This example uses a local copy of the GeoJSON stored at
// http://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/2.5_week.geojsonp
script.src = 'https://developers.google.com/maps/documentation/javascript/examples/json/earthquake_GeoJSONP.js';
document.getElementsByTagName('head')[0].appendChild(script);
// Loop through the results array and place a marker for each
// set of coordinates.
window.eqfeed_callback = function(results)
for (var i = 0; i < results.features.length; i++)
var coords = results.features[i].geometry.coordinates;
var latLng = new google.maps.LatLng(coords[1],coords[0]);
var marker = new google.maps.Marker(
position: latLng,
map: map
);
</script>
现在我正在使用它,但它不提供任何用户提交的标记。
【问题讨论】:
“允许用户删除标记”如何?通过点击地图? 是的,我希望他们通过点击添加标记 【参考方案1】:尝试运行这个有效的jsfiddle,以演示和指导用户如何在 Google 地图上放置标记。请注意,它基于 Google 的 example 添加和删除标记。
完整的JS代码如下:
var map;
var markers = [];
function initMap()
var haightAshbury =
lat: 37.769,
lng: -122.446
;
map = new google.maps.Map(document.getElementById('map'),
zoom: 12,
center: haightAshbury,
mapTypeId: 'terrain'
);
// This event listener will call addMarker() when the map is clicked.
map.addListener('click', function(event)
addMarker(event.latLng);
);
// Adds a marker at the center of the map.
addMarker(haightAshbury);
// Adds a marker to the map and push to the array.
function addMarker(location)
var marker = new google.maps.Marker(
position: location,
map: map
);
markers.push(marker);
您可以从地图的点击事件监听器中获取标记的坐标,例如:
map.addListener('click', function(event)
console.log(event.latLng.lat());
console.log(event.latLng.lng());
addMarker(event.latLng);
);
或来自addMarker
方法:
function addMarker(location)
var marker = new google.maps.Marker(
position: location,
map: map
);
console.log(marker.getPosition().lat());
console.log(marker.getPosition().lng());
markers.push(marker);
希望这会有所帮助!
【讨论】:
以上是关于如何在我的网站上向 Google 地图小部件添加用户输入标记,并从中获取纬度和经度数据?的主要内容,如果未能解决你的问题,请参考以下文章
Flutter iOS - 在加载 Google Maps 小部件之前无法获取 initialCameraPosition 的当前位置
单击打开 jQuery Mobile 面板小部件时的 Google 地图指针
django-geoposition 地图小部件未显示在我的生产服务器上的 django 管理员中,但它在我的测试服务器上运行良好