使用反向地理编码获取地址作为变量输出

问题描述 投票:0回答:2

我正在努力做到这一点,当卡车司机在一天开始时按下按钮时,我可以看到他在那一刻的位置,所以我知道我的司机从哪里出发。

当有人允许访问他们的位置时,我正在尝试获取它,您可以从中获取直接地址作为变量。它只需要是城市和国家。

像这样:Nottingham, NG1 1AJ, UK 这里以链接为例:https://www.mapdevelopers.com/what-is-my-address.php

i 只能在地图上显示位置的地方找到反向地理编码。 下面的代码使用反向地理编码但在地图上获取地址。 我正在尝试将其作为变量输出显示在应用程序中。 感谢您的帮助!

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Geolocation</title>
  </head>
  <body>
    <a href="#" id="get_location"><button>Get location</button></a>

    <div id="map">
      <iframe
        id="google_map"
        width="1000"
        height="700"
        frameborder="0"
        scrolling="no"
        marginheight="0"
        marginwidth="0"
        src="https://maps.google.com?output=embed"
      ></iframe>
    </div>

    <script>
      var x = document.getElementById("demo");
      function getLocation() {
        if (navigator.geolocation) {
          navigator.geolocation.getCurrentPosition(showPosition);
        } else {
          x.innerHTML = "Locatie niet supported door jouw browser.";
        }
      }

      function showPosition(position) {
        x.innerHTML =
          "Latitude: " +
          position.coords.latitude +
          "<br>Longitude: " +
          position.coords.longitude;
      }

      var c = function (pos) {
        var lat = pos.coords.latitude;
        long = pos.coords.longitude;
        coords = lat + ", " + long;

        document
          .getElementById("google_map")
          .setAttribute(
            "src",
            "https://maps.google.com/?q=" + coords + "0&z=60&output=embed"
          );
      };

      document.getElementById("get_location").onclick = function () {
        navigator.geolocation.getCurrentPosition(c);
        return false;
      };
    </script>
  </body>
</html>
javascript reverse-geocoding
2个回答
-1
投票

我找到了答案,见下面的代码。

//仅适用于谷歌地图 API 密钥

<script src="http://j.maxmind.com/app/geoip.js"></script>
<script src="https://maps.googleapis.com/maps/api/js?key=XXXXYOUR_API_KEYXXXX&callback=initMap&v=weekly&channel=2"></script>
<script type="text/javascript" >
window.onload=getGeo;


function getGeo(){
    if (navigator && navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(geoOK, geoKO);
    } else {
        geoMaxmind();
    }
}

function geoOK(position) {
     showLatLong(position.coords.latitude, position.coords.longitude);
}
function geoMaxmind() {
     showLatLong(geoip_latitude(), geoip_longitude());
}

function geoKO(err) {
if (err.code == 1) {
error('De gebruiker heeft toestemming geweigerd om locatie-informatie te verkrijgen.');
} else if (err.code == 2) {
error('Uw locatie kan niet worden bepaald.');
} else if (err.code == 3) {
error('TimeOut.')
} else {
error('We weten niet wat er is gebeurd, maar er is een fout opgetreden.');
}
}

function showLatLong(lat, longi) {
var geocoder = new google.maps.Geocoder();
var yourLocation = new google.maps.LatLng(lat, longi);
geocoder.geocode({ 'latLng': yourLocation },processGeocoder);

}
function processGeocoder(results, status){

if (status == google.maps.GeocoderStatus.OK) {
if (results[0]) {
document.forms[0].dir.value=results[0].formatted_address;
document.getElementById("")
} else {
error('Google heeft geen resultaten opgeleverd.');
}
} else {
error("Geocodering mislukt vanwege: " + status);
}
}
function error(msg) {
alert(msg);
}
</script>

<form align="left">
        <input type="text" name="dir" />
</form>

-1
投票

你如何将这个值存储到你的数据库中以供参考?

© www.soinside.com 2019 - 2024. All rights reserved.