【问题标题】:Google map API3 geocoded谷歌地图 API3 地理编码
【发布时间】:2010-09-12 09:10:37
【问题描述】:

我有关于地理编码器的问题!我有 20 个地址,而我的地图只显示了 11 个点!

我知道“delay”和“setTimeout”,但是不知道怎么用。

我在这个页面上找到了答案 - Loading city/state from SQL Server to Google Maps?

哪里写过setTimeout(调用geocoder有100ms的延迟),但我不知道如何在我的代码中使用这个代码!请帮忙,大约2周我做不到!!!在我的代码中,我还使用了 markerclusterer v3。这是工作。 showAddress - 这是俄罗斯地址。我只需要 setTimeout 地理编码器,帮助!我在 Oracle BI 中使用的这张地图。谢谢!

最好的问候,瓦西里。

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false">
</script>
<script src="http://www.google.com/jsapi"></script> 
<script type="text/javascript" src="http://google-maps-utility-library-v3.googlecode.com/svn/trunk/markerclusterer/src/markerclusterer.js"></script>
<script type="text/javascript">
    var geocoder;
    var markers = [];
    var map;



    function initialize() {
        geocoder = new google.maps.Geocoder();
        var latlng = new google.maps.LatLng(55.02940345314003, 82.919938);
        var myOptions = {
            zoom: 3,
            center: latlng,
            mapTypeId: google.maps.MapTypeId.ROADMAP


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

        setTimeout(createCluster, 2000);


    }

    function createCluster() 
    {
        var markerCluster = new MarkerClusterer(map, markers);
    }

    function showAddress(address, comment) {
        if (geocoder) {

            geocoder.geocode( { 'address': address}, function(results, status) {
                if (status == google.maps.GeocoderStatus.OK) {
                    //map.setCenter(results[0].geometry.location);
                    var marker = new google.maps.Marker({
                        map: map,
                        position: results[0].geometry.location,
                        title: 'bla bla'
                    });
                    markers.push(marker);
                    var infowindow = new google.maps.InfoWindow({
                        content:comment
                    });

                    google.maps.event.addListener(marker, 'click', function() {
                        infowindow.open(map,marker);
                    });        
                } 

                else {
                //alert("Mistake: " + status);
                }

            });
        }
    }

    function GetMapAdress () {
      showAddress('Новосибирск, Красный проспект, 66', 'Тут необходимая инфа <span style="font-weight: bold">Очень нужная инфа</span>');
      showAddress('Новосибирск, Красный проспект, 70', 'Тут необходимая инфа <span style="font-weight: bold">Очень нужная инфа</span>');
      showAddress('Новосибирск, Красный проспект, 76', 'Тут необходимая инфа <span style="font-weight: bold">Очень нужная инфа</span>');
      showAddress('Новосибирск, Красный проспект, 77', 'Тут необходимая инфа <span style="font-weight: bold">Очень нужная инфа</span>');
      showAddress('Новосибирск, Красный проспект, 86', 'Тут необходимая инфа <span style="font-weight: bold">Очень нужная инфа</span>');
      showAddress('Новосибирск, Красный проспект, 88', 'Тут необходимая инфа <span style="font-weight: bold">Очень нужная инфа</span>');
      showAddress('Новосибирск, Красный проспект, 99', 'Тут необходимая инфа <span style="font-weight: bold">Очень нужная инфа</span>');
      showAddress('Новосибирск, Красный проспект, 94', 'Тут необходимая инфа <span style="font-weight: bold">Очень нужная инфа</span>');
      showAddress('Новосибирск, Красный проспект, 98', 'Тут необходимая инфа <span style="font-weight: bold">Очень нужная инфа</span>');
      showAddress('Новосибирск, Красный проспект, 87', 'Тут необходимая инфа <span style="font-weight: bold">Очень нужная инфа</span>');
      showAddress('Новосибирск, Красный проспект, 101', 'Тут необходимая инфа <span style="font-weight: bold">Очень нужная инфа</span>');
      showAddress('Новосибирск, Красный проспект, 168', 'Тут необходимая инфа <span style="font-weight: bold">Очень нужная инфа</span>');
      showAddress('Новосибирск, Красный проспект, 157', 'Тут необходимая инфа <span style="font-weight: bold">Очень нужная инфа</span>');
      showAddress('Новосибирск, Красный проспект, 52', 'Тут необходимая инфа <span style="font-weight: bold">Очень нужная инфа</span>');
      showAddress('Новосибирск, Красный проспект, 33', 'Тут необходимая инфа <span style="font-weight: bold">Очень нужная инфа</span>');
      showAddress('Новосибирск, Красный проспект, 40', 'Тут необходимая инфа <span style="font-weight: bold">Очень нужная инфа</span>');
      showAddress('Новосибирск, Красный проспект, 23', 'Тут необходимая инфа <span style="font-weight: bold">Очень нужная инфа</span>');
      showAddress('Новосибирск, Красный проспект, 32', 'Тут необходимая инфа <span style="font-weight: bold">Очень нужная инфа</span>');
      showAddress('Новосибирск, Красный проспект, 13', 'Тут необходимая инфа <span style="font-weight: bold">Очень нужная инфа</span>');
   }
</script>
<script src="http://code.jquery.com/jquery-latest.js" type="text/javascript"></script>
<script type="text/javascript">
    $(document).ready( function(){initialize();return true;});
</script>

<body>
<div id="map_canvas" style="width: 900px; height: 500px; border: 3px solid orange" > </div>
</body>

【问题讨论】:

  • 请解释究竟是什么不起作用以及您遇到什么错误。
  • 帮助如何在我的代码中使用setTimeout 谷歌没有剪切地址,并通过每秒推断一个标记例如
  • 对不起,我是第一次使用这个服务,所以我不能在那里写东西

标签: javascript google-maps


【解决方案1】:

在这种特定情况下,问题似乎是您尝试编码的几个地址根本不存在。

新西伯利亚的 Krasnyy Prospekt 没有任何介于 100 和 155 之间的地址(但有 184)。您可以通过查看门牌号here 来了解这一点。

您可以在Google Maps Front-end by 中识别出搜索结果的命名方式。如果是Krasnyy Prospekt 没有你搜索的号码,它找到了道路但没有找到地址。如果号码在搜索结果中,它确实找到了完整的地址。

【讨论】:

  • 但是我的代码中的地址是正确的——房子№66、70、101、168等等!但是我在地理编码中的错误 - 它也很快收到地址和削减! Г 必须使用setTimeout,但不知道如何使用:(
  • 我还使用其他地址,存在 100 个地址,但也只扣除 11 个点,就好像取前 11 个并放置,然后如果要推断警报则给出错误 Over Query Limit在我的代码中消失在评论后面
  • @Riedel 我明白了。好吧,在您链接到的答案中,有一个示例说明如何在两者之间进行地址请求,为什么不使用它?
  • 我根本不知道如何使用 "index++; if (locations.length > index) { setTimeout(geocoderFunction, 100);"在我的代码中,我无法正确引入
猜你喜欢
  • 1970-01-01
  • 2013-05-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-29
  • 2011-08-28
  • 1970-01-01
相关资源
最近更新 更多