Hallo
MapMan,
das Konzept des GeoWebCache hört sich sehr gut an. Aber bis so etwas in Delphi umgesetzt ist, wird noch einige Zeit vergehen...
Um auf Deine Frage zu antworten: Ja, in diese Richtung gehen meine Vorstellungen. Aber momentan muß der eigentliche Proxy erst einmal richtig funktionieren (Durchlauf der Daten ohne Verluste und brauchbare Ereignishandler mit weitreichender Einflußmöglichkeit)-
-187- wartet schon ganz ungeduldig.
Bei dieser Gelegenheit möchte ich auf eine Anfrage antworten, ob vom Framework
Reverse Geocoding - also die Umwandlung von Koordinaten in eine Adresse - unterstützt wird:
Die Antwort dazu: Ja, das geht - wenn auch in der Version 1.1 des Frameworks noch nicht direkt, sondern über einen kleinen Trick.
Das liegt daran, daß ich mich eng an die
API-Dokumentation gehalten habe und dort Reverse Geocoding nicht explizit beschrieben wird. Aber es funktioniert und wird in der kommenden Version des Frameworks direkt unterstützt werden.
Die Geocoding-Anfrage erfolgt über
Delphi-Quellcode:
TGeocoder.Geocode(Request: TGeocoderRequest,...);
//...
Im Objekt TGeocoderRequest kann eine Koordinate übergeben werden, für die die Daten ermittelt werden. Die Eigenschaft
TGeocoderRequest.LatLng gibt es momentan noch nicht. Diese kann aber leicht hinzugefügt werden:
Delphi-Quellcode:
type
TGeocoderRequestAccess = class(TGeocoderRequest);
...
Request:=TGeocoderRequest.Create;
TGeocoderRequestAccess(Request).SetProp('latLng',LatLng,true);
Geocoder.Geocode(Request,GeocoderCallback);
...
Wird in der Callback-Methode die Eigenschaft
TGeocoderResults[n].Types genutzt, muß in der
Unit JScriptObjects eine kleine Korrektur vorgenommen werden:
Delphi-Quellcode:
function TStringArray.GetItem(Index: Integer): String;
begin
Result:='';
if (Index>=0) and (Index<Count)
then Result:=VarToStr(inherited Items[IntToStr(Index)]);
end;
Der Hintergrund dazu ist, daß das
API die Strings in String-Arrays nicht als Objekte, sondern als einfache Strings speichert.
Wird diese Änderung nicht vorgenommen, kommt es zu einer
Exception.
Quelltext der Demo (siehe Screenshot oben):