Einzelnen Beitrag anzeigen

MapMan

Registriert seit: 7. Apr 2008
11 Beiträge
 
Delphi 7 Architect
 
#40

AW: Google Maps über COM (Component Object Model)

  Alt 26. Feb 2011, 23:24
Hallo Thom,

noch ein Nachtrag zu Openlayers...

Meine OpenLayers-Apps sind für Offline- und Online-Betrieb ausgelegt.
Ich lade die OL-Bibliothek nicht aus dem Internet sondern direkt lokal vom Rechner.

Code:
<script type="text/javascript" src="http://localhost:28991/OpenLayers/OpenLayers.js"></script>
<script type="text/javascript" src="http://localhost:28991/OpenStreetMap/OpenStreetMap.js"></script>
Ein in die App integrierter HTTP-Server (den ich u.a. auch für REST-Kommunikation brauche) hostet den JS-Stuff der App.

Nach dem Start der App suche ich Offline-Karten (Verzeichnisse mit Endung OLM = OpenLayersMaps, in welchen sich mit Mapnik gerenderte OSM-Tiles der jeweiligen Zoomlevel befinden) und baue diese in den JS-Stuff ein

Delphi-Quellcode:
  if FOfflineMapList.Count<>0 then
    begin
      i:= IndexOfString(JavascriptMemo.Lines,'//Offline-Maps (Don''t change this line !)');
      if i<>-1 then
        for w := 0 to FOfflineMapList.Count-1 do
        begin
          JavascriptMemo.Lines.Insert(i+1,'var OfflineMap'+IntToStr(w)+' = new OpenLayers.Layer.OSM("'+NameWithoutExt(FOfflineMapList[w])+'", "http://localhost:28991/'+FOfflineMapList[w]+'/${z}/${x}/${y}.png", {numZoomLevels: 19});');
          JavascriptMemo.Lines.Insert(i+2,'map.addLayer(OfflineMap'+IntToStr(w)+');');
        end;
    end;
Für den Anwender bedeutet dies :

- Hat er eine Internetverbindung und keine Offline-Maps, dann kann er nur die Online-Maps auswählen

- Hat er eine Internetverbindung und Offline-Maps, dann kann er in der Reihenfolge Offline-Maps und dann Online-Maps auswählen
Das bedeutet, dass selbst bei einer Internetverbindung zunächst die Offline-Karten genutzt werden und nicht erst über eine eventuell dünne
GPRS-Verbindung fette Google-Sat-Karten aufgebaut werden müssen.

- Hat er keine Internetverbindung aber Offline-Maps, dann kann er nur die Offline-Maps auswählen


Warum schreibe ich das ?

Könntest du mal in deine Überlegungen die Integration eines reinen Offline-Betriebs mit einbeziehen ?
  Mit Zitat antworten Zitat