Javascript 如何让谷歌地图检测传递的谷歌地图URL的位置
是否有任何方法可以将传递的URL中的经度和纬度放入标记中。因此,用户基本上会从谷歌地图复制并粘贴“共享”URL 例如:地点: 或直接地点: 我希望初始化代码在共享URL位置创建一个标记Javascript 如何让谷歌地图检测传递的谷歌地图URL的位置,javascript,ajax,google-maps,google-maps-api-3,Javascript,Ajax,Google Maps,Google Maps Api 3,是否有任何方法可以将传递的URL中的经度和纬度放入标记中。因此,用户基本上会从谷歌地图复制并粘贴“共享”URL 例如:地点: 或直接地点: 我希望初始化代码在共享URL位置创建一个标记 与其他问题相比,我已经看到了GeocodeAPI的使用,但我不确定如何解析上面的示例URL,以及如何在JS中提取数据。任何对API进行Ajax调用或类似操作的示例都将不胜感激。URL包含纬度和经度,因此您可以轻松提取它们。调用putMarkerAtURLCoordinates(SHARED_URL)将在URL的
与其他问题相比,我已经看到了GeocodeAPI的使用,但我不确定如何解析上面的示例URL,以及如何在JS中提取数据。任何对API进行Ajax调用或类似操作的示例都将不胜感激。URL包含纬度和经度,因此您可以轻松提取它们。调用putMarkerAtURLCoordinates(SHARED_URL)将在URL的坐标处放置一个标记,假设您的google maps实例被称为“map” 但这不是一个稳定的解决方案。。。如果谷歌改变他们的URL方案,这将不再有效
function putMarkerAtURLCoordinates(url){
//get the latlng object from url
var myLatLng = getLatLngFromURL(url)
//create the marker and assign it to the map
var marker = new google.maps.Marker({
position: myLatLng,
map: map,
title: 'Marker title here'
});
}
function getLatLngFromURL(url){
//decode url incase its urlencoded
url = decodeURIComponent(url)
//find index of @ character
var atindex = url.indexOf("@")
//cut off the part before the @ and split the rest up by the comma separator
var urlparts = url.slice(atindex+1).split(",")
//parse the values as floats
var lat = parseFloat(urlparts[0])
var lng = parseFloat(urlparts[1])
//return as object
return {lat:lat,lng:lng}
}