【问题标题】:google map show multiple items by property address [duplicate]谷歌地图按属性地址显示多个项目[重复]
【发布时间】:2012-12-31 13:55:50
【问题描述】:

可能重复:
Google Map V3 : Only some markers are displayed

我需要谷歌地图方面的帮助。我有以下代码使用地图上显示的 1 个属性,但我有许多地址/属性要在同一张地图上显示它们并且没有成功。

var address = "<?php echo $address?>";
       var map = new google.maps.Map(document.getElementById('map'), {
           mapTypeId: google.maps.MapTypeId.ROADMAP,
           zoom: 16
       });
       var geocoder = new google.maps.Geocoder();
       geocoder.geocode({
          'address': address
       }, 
       function(results, status) {
          if(status == google.maps.GeocoderStatus.OK) {
             new google.maps.Marker({
                position: results[0].geometry.location,
                map: map
             });
             map.setCenter(results[0].geometry.location);
          }
       });

从 php 我得到地址,但 JS 端脚本对我来说很难。请帮助并告诉我需要更改的内容,以便将地址变为 JS 数组以及如何显示所有地址。

【问题讨论】:

  • 您可能需要调用geocoder 的次数与您拥有的地址数量一样多,并为每个地址创建一个标记。
  • 没关系,但是怎么做呢?正如我所说,我不熟悉 JS 脚本方面。我相信需要对代码进行一些小的更改,但它们是什么?

标签: google-maps


【解决方案1】:

我猜你正在寻找一个简单的 Javascript for 在你的数组上循环,所以这应该是这样的(假设 address 是一个有效的 Javascript 数组):

// address = ... //define address array here

var map = new google.maps.Map(document.getElementById('map'), {
       mapTypeId: google.maps.MapTypeId.ROADMAP,
       zoom: 16
   });
var geocoder = new google.maps.Geocoder();

var nbAddresses = address.length;

for (var i=0;i<nbAddresses;i++)
{ 

  geocoder.geocode({
          'address': address[i]
   }, 
   function(results, status) {
      if(status == google.maps.GeocoderStatus.OK) {
         new google.maps.Marker({
            position: results[0].geometry.location,
            map: map
         });
         map.setCenter(results[0].geometry.location);
      }
   });

}

编辑:请注意,此代码 sn-p 可以优化,它只是满足您需求的一种快速方法(没有双关语);)

【讨论】:

  • 亲爱的 tchap,感谢您的回复,但是当我复制/粘贴代码时,代码不起作用或至少不起作用.. Iget 错误未定义的 geocoder.geocode 函数..
  • 这将适用于大约 10 个地址,然后开始出现 OVER_QUERY_LIMIT 错误并失败(不显示标记,因为它不检查返回的状态)。
  • 让我们替换 var address = "";地址1 ='地址1';和地址2 ='地址2';而不是那个 php 变量 - 我更容易理解替换的内容和位置
  • 我将在每页使用 5-9 个地址,因此限制问题不是问题
  • tchap,看来问题出在php数组中,所以在我发布之前想先检查一下..很快就会回来,谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-22
  • 1970-01-01
相关资源
最近更新 更多