当前位置: 首页 > 面试题库 >

通过Google Maps API使用地址而不是经度和纬度

巫马刚洁
2023-03-14
问题内容

我听说可以提交一个地址而不是经度和纬度,这对于我的系统来说将更加可行。用户在创建个人资料时必须输入他们的地址,之后他们的个人资料将显示其房屋的Google地图。我目前可以将Google
Maps API与经度和纬度完美配合使用:

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<link rel="stylesheet" type="text/css" href="css.css" />
    <title>Login Page</title>

<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<style type="text/css">
  html { height: 100% }
  body { height: 100%; margin: 0; padding: 0 }
  #map-canvas { height: 100% }
</style>
<script type="text/javascript"
  src="https://maps.googleapis.com/maps/api/js?key=MYKEY&sensor=false">
</script>
<script type="text/javascript">
  function initialize() {
    var mapOptions = {
  center: new google.maps.LatLng(52.640143,1.28685),
      zoom: 15,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    var map = new google.maps.Map(document.getElementById("map"),
        mapOptions);

var marker = new google.maps.Marker({
    position: new google.maps.LatLng(52.640143,1.28685),
    map: map,
    title: "Mark On Map"
});
  }
  google.maps.event.addDomListener(window, 'load', initialize);
</script>

</head>

请有人帮我修改代码,以便它使Google Maps API可以在其位置请求地址,因为我想直接从mySQL数据库中读取用户的地址。


问题答案:

使用Google Maps Javascript API v3
Geocoder将地址转换为可以在地图上显示的坐标。

<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no"/>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<title>Google Maps JavaScript API v3 Example: Geocoding Simple</title>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
  var geocoder;
  var map;
  var address ="San Diego, CA";
  function initialize() {
    geocoder = new google.maps.Geocoder();
    var latlng = new google.maps.LatLng(-34.397, 150.644);
    var myOptions = {
      zoom: 8,
      center: latlng,
    mapTypeControl: true,
    mapTypeControlOptions: {style: google.maps.MapTypeControlStyle.DROPDOWN_MENU},
    navigationControl: true,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
    if (geocoder) {
      geocoder.geocode( { 'address': address}, function(results, status) {
        if (status == google.maps.GeocoderStatus.OK) {
          if (status != google.maps.GeocoderStatus.ZERO_RESULTS) {
          map.setCenter(results[0].geometry.location);

            var infowindow = new google.maps.InfoWindow(
                { content: '<b>'+address+'</b>',
                  size: new google.maps.Size(150,50)
                });

            var marker = new google.maps.Marker({
                position: results[0].geometry.location,
                map: map, 
                title:address
            }); 
            google.maps.event.addListener(marker, 'click', function() {
                infowindow.open(map,marker);
            });

          } else {
            alert("No results found");
          }
        } else {
          alert("Geocode was not successful for the following reason: " + status);
        }
      });
    }
  }
</script>
</head>
<body style="margin:0px; padding:0px;" onload="initialize()">
 <div id="map_canvas" style="width:100%; height:100%">
</body>
</html>

工作代码段:

var geocoder;

var map;

var address = "San Diego, CA";



function initialize() {

  geocoder = new google.maps.Geocoder();

  var latlng = new google.maps.LatLng(-34.397, 150.644);

  var myOptions = {

    zoom: 8,

    center: latlng,

    mapTypeControl: true,

    mapTypeControlOptions: {

      style: google.maps.MapTypeControlStyle.DROPDOWN_MENU

    },

    navigationControl: true,

    mapTypeId: google.maps.MapTypeId.ROADMAP

  };

  map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

  if (geocoder) {

    geocoder.geocode({

      'address': address

    }, function(results, status) {

      if (status == google.maps.GeocoderStatus.OK) {

        if (status != google.maps.GeocoderStatus.ZERO_RESULTS) {

          map.setCenter(results[0].geometry.location);



          var infowindow = new google.maps.InfoWindow({

            content: '<b>' + address + '</b>',

            size: new google.maps.Size(150, 50)

          });



          var marker = new google.maps.Marker({

            position: results[0].geometry.location,

            map: map,

            title: address

          });

          google.maps.event.addListener(marker, 'click', function() {

            infowindow.open(map, marker);

          });



        } else {

          alert("No results found");

        }

      } else {

        alert("Geocode was not successful for the following reason: " + status);

      }

    });

  }

}

google.maps.event.addDomListener(window, 'load', initialize);


html,

body,

#map_canvas {

  height: 100%;

  width: 100%;

}


<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>

<div id="map_canvas" ></div>


 类似资料:
  • 本文向大家介绍python通过百度地图API获取某地址的经纬度详解,包括了python通过百度地图API获取某地址的经纬度详解的使用技巧和注意事项,需要的朋友参考一下 前言 这几天比较空闲,就接触了下百度地图的API(开发者中心链接地址:http://developer.baidu.com),发现调用还是挺方便的,本文将给大家详细的介绍关于python通过百度地图API获取某地址的经纬度的相关内容

  • 本文向大家介绍使用百度地图api实现根据地址查询经纬度,包括了使用百度地图api实现根据地址查询经纬度的使用技巧和注意事项,需要的朋友参考一下 以上就是代码的全部内容了,小伙伴们可以直接使用在项目中哦,不用跟我说谢谢,请叫我雷锋大大~

  • 请有人帮助我改变我的代码,使谷歌地图API能够请求一个地址在它的地方,因为我想读取地址的用户直接从mySQL数据库。

  • 本文向大家介绍基于python实现地址和经纬度转换,包括了基于python实现地址和经纬度转换的使用技巧和注意事项,需要的朋友参考一下 中文领域: 指的是提取境内地址的经纬度,的主要调用的是百度API。中间经历了一些波折,刚开始直接使用网上代码debug半天都不行,才发现要随时跟进官方改动,使用别人的API一定要看说明书啊! 首先需要从百度地图平台上注册一个AK(在这之前要注册百度的开发者身份,免

  • 问题内容: 给定纬度和经度,我们如何使用Javascript或Python将其转换为街道地址? 问题答案: 大多数人在99%的时间内将您链接到Google Maps的API。不错的答案。但是- 注意禁止用途,使用限制和使用条款!尽管许多分布式应用程序并未违反使用限制,但对于Web应用程序而言却是相当有限的。TOS不允许您将皮肤上的数据重新用于Google应用程序中。您不希望因Google发出的终止

  • 本文向大家介绍JS使用百度地图API自动获取地址和经纬度操作示例,包括了JS使用百度地图API自动获取地址和经纬度操作示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JS使用百度地图API自动获取地址和经纬度操作。分享给大家供大家参考,具体如下: 在实际工作中我们经常会遇到这样的问题,但是当我们去看百度API的时候往往又达不到我们的要求。 故此,本篇博文讲述如何使用百度地图API自动获