Javascript 如何让谷歌地图检测传递的谷歌地图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的

是否有任何方法可以将传递的URL中的经度和纬度放入标记中。因此,用户基本上会从谷歌地图复制并粘贴“共享”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}
}