0
此代碼創建一個加載特定地址(由程序傳遞)的bing地圖的HTML頁面,然後將該頁面加載到Chromium瀏覽器中。我測試了這個產生的HTML文件,如果我雙擊該文件,我的默認瀏覽器打開並且頁面加載正確。但是,當我嘗試將該頁面加載到程序中的Chromium瀏覽器窗口(該頁面在過去爲其他頁面工作)時,只顯示標題(材料來自div id =「TitleDiv」),但地圖從不顯示。我試圖弄清楚爲什麼HTML在編程加載到瀏覽器時沒有加載,當它手動加載時加載正確。將bing地圖頁面加載到Chromium瀏覽器中(在Delphi中)
我試過這個有沒有ChromWebPage.Browser.Reload;一行。
這是我確切的Delphi代碼,除了我在這裏省略了我們的Bing地圖鍵。 (獲取文本與德爾福的文件,我知道,如果是用的TStringList這就是爲什麼代碼的格式像這樣簡單的方式。)
mMap := TStringList.Create;
with mMap do begin
Add('<!DOCTYPE html> ');
Add('<html> ');
Add('<head>');
Add('<title>' + sCaption + '</title> ');
Add(' <meta charset="utf-8" /> ');
Add(' <script type="text/javascript"> ');
Add(' var map, searchManager; ');
Add(' function GetMap() { ');
Add(' map = new Microsoft.Maps.Map("#myMap", { ');
Add(' credentials: "KEY-HERE" ');
Add(' }); ');
//Make a request to geocode passed address
Add(' geocodeQuery("' + sAddress + '"); ');
Add(' } ');
Add(' function geocodeQuery(query) { ');
//If search manager is not defined, load the search module.
Add(' if (!searchManager) { ');
// Create an instance of the search manager and call the geocodeQuery function again.
Add(' Microsoft.Maps.loadModule("Microsoft.Maps.Search", function() { ');
Add(' searchManager = new Microsoft.Maps.Search.SearchManager(map); ');
Add(' geocodeQuery(query); ');
Add(' }); ');
Add(' } else { ');
Add(' var searchRequest = { ');
Add(' where: query, ');
Add(' callback: function (r) { ');
// Add the first result to the map and zoom into it.
Add(' if (r && r.results && r.results.length > 0) { ');
Add(' var pin = new Microsoft.Maps.Pushpin(r.results[0].location); ');
Add(' map.entities.push(pin); ');
Add(' map.setView({ bounds: r.results[0].bestView }); ');
Add(' } ');
Add(' }, ');
Add(' errorCallback: function (e) { ');
// If there is an error, alert the user about it.
Add(' alert("No results found."); ');
Add(' } ');
Add(' }; ');
//Make the geocode request.
Add(' searchManager.geocode(searchRequest); ');
Add(' } ');
Add(' } ');
Add(' </script> ');
Add(' <script type="text/javascript" src="/BingMapsCredentials.js"></script> ');
Add(' <script type="text/javascript" src="https://www.bing.com/api/maps/mapcontrol?callback=GetMap" async defer></script> ');
Add('</head> ');
Add('<body style="width:100%;height:100%"> ');
Add(' <div id="TitleDiv" style="padding-bottom: 15px; ');
Add(' padding-top: 5px; ');
Add(' font-family: Arial, Helvetica, sans-serif; ');
Add(' font-size: 14px; ');
Add(' font-weight: bold; ');
Add(' position:relative;">' + sCaption + '</div> ');
Add(' <div id="myMap" style="width:100vw;height:95vh;position:relative;"></div> ');
Add('</body> ');
Add('</html> ');
sTempFile := GetLocalAppDir + 'mymap.html';
if fileExists(sTempFile) then DeleteFile(sTempFile);
savetofile(sTempFile);
mMap.free;
end;
ChromWebPage.DefaultUrl := sTempFile;
ChromWebPage.Browser.MainFrame.LoadUrl(sTempFile);
ChromWebPage.Browser.Reload;