2012-07-14 88 views
1

所以我正在製作一個簡單的網站,其初始功能簡單如此:從最近上傳的KML文件初始化Google Maps API

用戶上傳KML文件到網站。 Google Maps API會使用此KML文件進行初始化,以便顯示地圖及其最近的移動。

現在這聽起來很簡單,但我在基礎知識方面遇到了一些麻煩。這或多或少是我第一次參與Web開發,因此我正在嘗試學習HTML,CSS,AJAX,PHP,Google Maps API V3以及KML文件格式。

要使用KML文件初始化谷歌地圖API,首先必須建立一些基本信息,比如這個:

function initialize() { 
    var myLatlng = new google.maps.LatLng(40.65, -73.95); 
    var myOptions = { 
    zoom: 12, 
    center: myLatlng, 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
    }; 

最重要的一點來看看這裏是哪裏居中地圖。

除了這一點,必須指定KML文件使用方法:

var nyLayer = new google.maps.KmlLayer(
     'http://www.searcharoo.net/SearchKml/newyork.kml', 
     { suppressInfoWindows: true, 
     map: map}); 

這些當然只是例子,不是我將使用數據。

現在我的問題是這樣的。這些值似乎是預先確定的和靜態的。要初始化Google Maps API,這些值需要事先知道。但在我的情況下,直到用戶上傳KML文件,纔會知道這些值。

到目前爲止,我有一個簡單的PHP腳本來處理文件上傳。我不知道如何將控制權交給包含Google地圖設置的JavaScript,或者如何編寫此代碼,以便僅在文件上傳後才知道的值用於初始化地圖。

總之,我的意思來實現是這樣的:

用戶瀏覽到KML文件。用戶按下「上傳」按鈕。文件已上傳,然後立即用於初始化顯示其移動的地圖。

我可能寫得太多了,但我認爲最好寫得不夠多。預先感謝您的建議。

+0

KmlLayer更改地圖以顯示KML文件的內容(除非您指定preserveViewport選項爲true)。 – geocodezip 2012-07-14 17:00:43

回答

1

鑑於您發佈的代碼片段,KmlLayer應居中放大以顯示kml文件的內容。如果沒有這樣做,請提供足夠的信息來重現問題(kml文件和顯示它的html/js文件)。

編輯: 您寫道:

我需要我的PHP文件上傳腳本保存KML文件的名稱, 然後不知何故,我需要提取關於在地圖應居中信息,

你並不需要做的,除非你不喜歡中心的默認行爲,並縮放地圖,顯示KML的所有內容

,然後用我剛剛提取的信息調用Google Maps API(我相信是JavaScript) 。 這一切都需要按一下上傳按鈕來完成。

是的。

EDIT2:

好的,但如何?我不知道該怎麼辦。這是我第一次嘗試web開發。 我不要求別人寫的代碼對我來說,但如何做到這一點

第1步指針:This example from the documentation說明如何顯示KML文件,替換參考的「http:// gmaps -samples.googlecode.com/svn/trunk/ggeoxml/cta.kml',並引用你想要顯示的kml文件。

第2步:改變你的PHP生成加載和點擊按鈕時顯示它所需的HTML和JavaScript。這是如何工作的將取決於你想要在你的頁面上顯示它的位置,以及你是否希望它是一個隱藏的div,當按鈕被點擊時,顯示一個新窗口或其他東西。

+0

這些代碼片段僅僅是Google Maps API文檔中的示例。 KML文件的名稱和特徵只有在我們上傳之後纔會知道,這是我的問題。所以我需要寫一些腳本來使用變量?我需要我的php文件上傳腳本來保存KML文件的名稱,然後以某種方式提取有關地圖應居中位置的信息,然後調用Google Maps API(我相信它是JavaScript),並將信息I剛剛提取。這一切都需要按一下上傳按鈕來完成。 – cherryduck 2012-07-15 19:16:58

+0

好的,但是如何?我不知道該怎麼辦。這是我第一次嘗試web開發。我不是要求某人爲我編寫代碼,而是指示如何執行此操作,謝謝。 – cherryduck 2012-07-15 21:04:51

+0

步驟1:將參考替換爲我想要顯示的KML文件。這是我的核心問題。在按下按鈕之前,KML文件的名稱是未知的。 – cherryduck 2012-07-16 11:41:13

相關問題