谷歌地图API3进行了地理编码

时间:2010-09-12 09:10:37

标签: javascript google-maps

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

我知道“延迟”和“setTimeout”,但我不知道如何使用它。

我在此页面上找到了关于它的答案 - Loading city/state from SQL Server to Google Maps?

写了关于setTimeout的内容(调用延迟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>

1 个答案:

答案 0 :(得分:1)

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

新西伯利亚的Krasnyy Prospekt没有100到155之间的任何地址(但确实有184个)。你可以通过查看门牌号here来看到这一点。

您可以在Google Maps Front-end by中识别搜索结果的名称。如果Krasnyy Prospekt没有您搜索的号码,则会找到道路而不是地址。如果该数字在搜索结果中,则确实找到了完整的地址。