Google map API3 с геокодированием - PullRequest
       3

Google map API3 с геокодированием

1 голос
/ 12 сентября 2010

У меня проблема с геокодером!У меня 20 адресов, и моя карта показывает мне только 11 очков!

Я знаю о «задержке» и «setTimeout», но не знаю, как их использовать.

Я нашел ответ оэто на этой странице - Загрузка города / штата из SQL Server в Google Maps?

Где написано о setTimeout (вызов геокодера с задержкой 100 мс), но я не знаю, как использоватьэтот код в моем коде!Пожалуйста, помогите, около 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 Ответ

1 голос
/ 12 сентября 2010

В данном конкретном случае проблема заключается в том, что несколько адресов, которые вы пытаетесь кодировать, просто не существуют.

Новосибирский красный проспект не имеет адресов в диапазоне от 100 до 155 (но имеет 184). Вы можете увидеть это, посмотрев номера домов здесь .

Это можно узнать в интерфейсе Google Maps по , как называется результат поиска. Если это Krasnyy Prospekt без номера, который вы искали, он нашел дорогу, но не адрес. Если номер находится в результате поиска, он нашел полный адрес.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...