1

我环顾四周,发现了各种使用 Googles API 的地理编码示例,但现在我被卡住了。

我已经使用 Google API 将邮政编码转换为经度和纬度坐标,但现在我想要一个使用这些坐标和邮政编码来显示标记的 Google 地图,然后将地图放在我的网站上。与您可以从谷歌地图网站获得的 iframe 完全相同:

例如这个:

谷歌地图链接。

我的网站将从我的数据库中加载lat和 long MySQL,然后将它们放入链接中,但没有运气!

有任何想法吗?

4

2 回答 2

3

从数据库中获取$postadress,latlong值,然后获取这些值,例如,

 <script  type="text/javascript">
     var locations = [['$postaddress ;','$lat;', ' $long;', '1'],];
 </script>

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

  <div id="map" class="googlemapimage"></div>

  <script type="text/javascript">

    var map = new google.maps.Map(document.getElementById('map'), {
      zoom:15,  
      center: new google.maps.LatLng(<?php echo $lat;?>, <?php echo $long; ?>),
      mapTypeId: google.maps.MapTypeId.ROADMAP
    });

    var infowindow = new google.maps.InfoWindow();

    var marker, i;
    for (i = 0; i < locations.length; i++) {  
      marker = new google.maps.Marker({
        position: new google.maps.LatLng(locations[i][1], locations[i][2]),
        map: map
      });

      google.maps.event.addListener(marker, 'mouseover', (function(marker, i) {
        return function() {
          infowindow.setContent(locations[i][0]);
          infowindow.open(map, marker);
        }

      })(marker, i));
      google.maps.event.addListener(marker, 'mouseout', (function(marker, i) {
        return function() {

          infowindow.close();
        }

      })(marker, i));
       google.maps.event.addListener(marker, 'click', (function(marker, i) {
        return function() {
        infowindow.setContent(locations[i][0]);
           infowindow.open(map, marker);
        }

      })(marker, i));
    }
  </script>
于 2012-05-28T12:11:22.410 回答
2

谷歌地图不是一个 iframe,它是一堆 div,不同的地图图块在这里和那里放置。

如果您使用的是 Google Maps API v3,只需查看此 google 示例的源代码。它应该正是您所需要的。这很简单。

基本上,您在中央 lng/lat 上初始化地图。在该示例中,它将其居中并添加一个标记(这可能是您所追求的)。

或者,如果您只需要图片/标记,而没有交互性,您可以查看静态地图 API。这就像加载图像(您只需将 long/lat 传递给 img src 属性:https ://developers.google.com/maps/documentation/staticmaps/

于 2012-05-28T12:09:01.900 回答