кеширование гугл карты api v2 - PullRequest
       6

кеширование гугл карты api v2

0 голосов
/ 22 сентября 2011

можно ли кешировать геокоды на гугл картах api v2?потому что мне нужно получить 6,5 тыс. меток на карте, и с помощью этого сценария их загрузка займет около 20 минут.и мы не хотим использовать lat и lng, если они не нужны.и если это невозможно, кто-нибудь знает другой способ загрузить их быстрее?мое знание javascript не очень хорошее, так как это мой первый скрипт.

это мой код

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
    <title>Google Maps JavaScript API Example</title>
    <script src="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAjU0EJWnWPMv7oQ-jjS7dYxTPZYElJSBeBUeMSX5xXgq6lLjHthSAk20WnZ_iuuzhMt60X_ukms-AUg"
    type="text/javascript"></script>
    <script type="text/javascript">
    //<![CDATA[

        //load Google Map
        function load() {
          if (GBrowserIsCompatible()) {
                var map = new GMap2(document.getElementById("map"));
                var geocoder = new GClientGeocoder();
                map.addControl(new GLargeMapControl()); 
                map.addControl(new GMapTypeControl()); 

        //hier .xml bestand plaatsen voor de adressen
        GDownloadUrl("test.xml", function(data, responseCode) {
        var xml = GXml.parse(data);

        //store markers in markers array
        var markers = xml.documentElement.getElementsByTagName("marker");

        //loop voor het ophalen van markers
        function placeMarker(i) {

        //hier die dingen invullen waar hij naar moet zoeken in het .xml bestand
        var address = markers[i].getAttribute("address"),
            html = markers[i].getAttribute("html");

        showAddress(map,geocoder,address,html);

        if (++i <= markers.length) {

                setTimeout(
                    function() {
                        placeMarker(i);
                    },
                    //snelheid van de loop hoe hoger het getal hoe langer de loop erover doet om rond te gaan (miliseconden)
                    210
                );

            }

        }

        placeMarker(0);


        //Create marker and set up event window
        function createMarker(point,html){
          var marker = new GMarker(point);
          GEvent.addListener(marker, "click", function() {
             marker.openInfoWindowHtml(html);
          });
          return marker;
        }

        //showAddress zorgt voor het omzetten van de adressen naar lengte en breedte graad
        function showAddress(map,geocoder,address,html) {
          geocoder.getLatLng(
            address,
            function(point) {
              if (!point) {
                alert(address + " niet gevonden, laad de pagina aub opnieuw als het adress van toepassing is.");
              } else {
                map.setCenter(point, 12);
                var marker = createMarker(point,html+'<br/><br/>'+address);
                map.addOverlay(marker);
              }
            }
          );
        }


          }
        ); //close GDownloadUrl
  } //close GBrowserIsCompatible
} //close load
   //]]>
    </script>
  </head>
  <body onload="load()" onunload="GUnload()">
    <div id="map" style="width: 1000px; height: 700px"></div>
  </body>
</html>

1 Ответ

0 голосов
/ 22 сентября 2011

Условия использования Google довольно ограничены, когда дело доходит до кэширования данных:

10.1.3 Ограничения на экспорт или копирование данных.

...

(b) Нет предварительной выборки, кэширования или хранения контента. Ты не должен предварительно извлекать, кэшировать или хранить любой Контент, за исключением того, что вы можете хранить: ограниченное количество контента с целью улучшения производительность вашей реализации API Карт, если вы делаете это временно, безопасно и таким образом, который не позволяет использовать Контент вне службы; и (ii) любой идентификатор контента или ключ, который Документация API Карт специально позволяет вам хранить. За Например, вы не должны использовать Контент для создания независимой база данных «мест».

Вы можете использовать бесплатную службу геокодирования, такую ​​как веб-сервис *1012* Университета Южной Калифорнии, чтобы геокодировать все ваши маркеры и сохранять их. Затем вы можете получить эти данные и нанести их на карту Google.

Кроме того, если нет особых причин использовать Google Maps v2, я бы рекомендовал переключиться на Maps v3 , поскольку v2 больше не поддерживается.

...