我需要能夠從非網絡應用程序訪問谷歌地圖API。我在Google Maps的常見問題中看到這是可能的。但是,我找不到任何有關從基於PC的應用程序訪問API的參考。有人能指引我朝着正確的方向嗎?谷歌地圖非網絡訪問
(我想從一個Delphi應用程序訪問API,是否有幫助。)提前
感謝。
我需要能夠從非網絡應用程序訪問谷歌地圖API。我在Google Maps的常見問題中看到這是可能的。但是,我找不到任何有關從基於PC的應用程序訪問API的參考。有人能指引我朝着正確的方向嗎?谷歌地圖非網絡訪問
(我想從一個Delphi應用程序訪問API,是否有幫助。)提前
感謝。
前段時間我寫了一系列有關使用Delphi的Google maps API v3的文章,基本上你需要一個TWebBrowser組件,並加載一個HTML代碼來處理Google Maps JavaScript API v3
。從這裏使用IHTMLWindow2.execScript和MSHTML Interfaces等功能,您可以與來自Delphi的JavaScript代碼和Google Maps API響應進行交互。
而且看看這些項目
如果你有在這個方向上認真部署:
忘掉谷歌地圖API,並使用OpenLayers代替。
相信我,我有實踐經驗。我創建了無數交互式地圖網站和應用程序,並且我編寫了將Google地圖功能包裝到Delphi組件中的代碼。你可以找到他們在谷歌代碼:http://code.google.com/p/delphimaps/
您還可以找到,我已經有一個早期版本的這些組件的位置做了一些應用實例:Use Googlemap from my Delphi application?
的OpenLayers是更加靈活,它是完全開源的,它背後有一個完整的社區。它甚至可以使用Google地圖,但您可以輕鬆切換到OpenStreetMaps,Yahoo,Bing或您自己的GIS系統。
網上有很多例子,而且你並不拘泥於谷歌強加的愚蠢規則。例如,如果您想通過安全(HTTPS)連接使用Google地圖,則必須付費。我從不直接使用Google Maps API,而且自從我開始使用OpenLayers後,我的GIS網站變得更好了。也許有一天我應該將OpenLayers封裝到Delphi組件中,但是現在我用JavaScript代替大部分東西,並且只在真正需要時才與我的Delphi應用程序通信,所以即使使用包含地圖的Delphi應用程序,也不需要太多的GIS東西在德爾福完成。 原來更容易維護。
..
此外,的OpenLayers不需要任何互聯網連接。它可以在離線瀏覽器中100%運行。Google地圖要求您使用互聯網連接,因爲它會動態下載部分代碼,並且始終希望從Google下載其地圖。
「我現在用JavaScript編寫大部分內容......」 - 你不必再用了,你可以和Pascal呆在一起。看看智能手機工作室:http://op4js.optimalesystemer.no/about/ – avra
我的底線是,我需要捕捉一個人從開始到停止駕駛的路線。我需要街道名稱,城市和州/省。 OpenLayers能做到這一點嗎? – rickstep
我不確定「捕捉路線」的含義,但如果您需要將座標轉換爲地址,則可以使用Google GeoCoder API。 DelphiMaps爲你打包,有兩個演示如何使用它。 DelphiMaps也包裝了Google的routeplanner,也有一個演示。這個空間太小,不能進一步解釋;問一個新的問題,如果你需要幫助。 –
如果您正在尋找一個完整的解決方案,在Delphi中使用Google Maps API,我強烈建議您使用Delphi框架Google地圖。它可以使用全部 API函數沒有單行HTML或JavaScript。
例如:
procedure TForm1.FormShow(Sender: TObject);
begin
with Script(WebBrowser1) do
if not APILoaded
then LoadAPIAsync(InitMap);
end;
procedure TForm1.InitMap(Sender: TObject);
var
MapOptions: TMapOptions;
begin
with Sender as TScript do
begin
MapOptions:=New(Google.Maps.MapOptions);
with MapOptions do
begin
Zoom:=8;
Center:=New(Google.Maps.LatLng(-34.397,150.644));
MapTypeID:=Google.Maps.MapTypeID.Roadmap;
end;
New(Google.Maps.Map(MapOptions));
end;
end;
路線規劃也容易獲得。有一些演示。
不幸的是,您仍然可以從當前的German forum下載。一個單獨的網站正在建設中。如果註冊或下載有問題,我可以發送一封電子郵件與框架。
關注
哇 - 我會看看這個。謝謝!! – rickstep
在您花更多時間編寫代碼之前,您應該仔細閱讀許可條款,也許可以考慮使用OpenStreetMap。只是說... – dummzeuch
我的底線是,我需要捕捉一個人從開始到結束的駕駛路線。我需要街道名稱,城市和州/省。據說,Google Maps API有一個地理編碼器,它可以告訴我這些信息,知道GPS座標。 – rickstep
看來,來自OpenStreetMap的nominatim包含我正在尋找的數據。由於我在這方面是一個新手,是否有任何如何從Delphi內部調用nomiatim並解釋xml結果的例子? – rickstep