2011-07-18 77 views
3

我想構建一個應用程序,該應用程序使用GPS數據和我提供的建築物地圖來向用戶顯示地圖上建築物的位置。這將在我已經知道的特定建築物中完成獲取GPS和小區服務。Android自定義GPS地圖應用程序

起初我認爲最簡單的方法是看看我是否可以使用Google地圖來繪製用戶位置,然後在Google地圖頂部「覆蓋」我的自定義建築物地圖,這樣我就不必處理任何gps信息或映射的複雜性我只需將我的「覆蓋圖」縮放到Google地圖頂部,以便用戶可以看到建築物的正確房間。我想知道是否有人可以向我提供關於如何做到這一點的任何信息,或者是否有更簡單的方法來完成我的地圖。任何信息都是有幫助的!

+0

是你的情況關閉了嗎?你會分享教程,使地圖覆蓋真實世界的位置嗎?似乎我也想嘗試在這裏的android編程。 – gumuruh

回答

1

沒有可能使用比在標準GMap上可以看到的更近的縮放級別,即在瀏覽器中。其他問題是,谷歌使用GeoPoint類基於主要microdegrees繪製覆蓋,它的準確性是低的。 你可以看看jGarminImg - 這是java庫 - 不幸的是寫入使用擺動,但它應該是相對容易的,使其與android的工作。另一方面 - 你必須製作你自己的地圖。 您可以使用標準疊加層,也可以使用kml格式製作地圖並使用this示例來顯示它。

+0

嗯,我真的不想縮小比谷歌地圖已經允許我更接近我只是想覆蓋我已經有了我的建築物地圖。 – Peter

+0

添加了一些更多的想法。 – piotrpo

1

你想... Google Map View

...更具體地說,你可能會想讀合適的名稱,小節:「第2部分:添加覆蓋項目」

編輯:哎呀!沒關係!我誤解了你的問題......只有當你想在地圖上疊加一個項目時纔會這樣。對不起...

+0

我實際上已經看過,但是就像你說過的,它只允許你在地圖上添加一個點而不是一個圖像疊加層 – Peter

+0

你知道馬克墨菲在不久之前發佈了關於這個主題的地方。他建議,就像一些遊戲引擎(例如AndEngine)一樣,也許你可以嘗試使用滾動背景和「相機」,然後在你的GPS座標上畫出你的GPS座標。我知道你有點說,你想避免這種情況,但沒有得到Android的開源映射應用程序,並修改其代碼以滿足您的需求,這似乎是一個可行的選擇考慮。以下是一些http://en.wikipedia.org/wiki/List_of_open_source_Android_applications#Location.2FMapping.2FNavigation.2FRouting希望有所幫助。 – rf43

0

是的,你可以覆蓋位圖圖像在Google MapView上。

您所要做的就是對Overlay類進行子類化,重寫draw方法並在畫布上繪製。您必須提供一個GeoPoints矩形(可能是左上角和右下角)以將建築位圖固定在MapView頂部。您可以使用mapView.getProjection()將畫布上的緯度和經度轉換爲xy座標。

我假設drawBitmap(Bitmap bitmap, Rect src, RectF dst, Paint paint)將在這裏有用。請記住,src和paint可以爲null。如果您使用的GeoPoints是準確的,則位圖將自動調整爲平移和縮放,但如果用戶放大太多,它可能會變成像素。

編輯:我不是很確信谷歌地圖將有建築物停留在不同的縮放級別完全相同的GeoPoints,所以你可能有如果您只需要調整這些值不同的縮放級別

0

如果您可以確定您的位置作爲建築物內的座標,那麼在不使用Google地圖的情況下繪製圖像上的位置應該不會太困難。

您需要知道兩個座標:您正在使用的建築物地圖的西北角和東南角。當您獲得GPS位置更新時,可以根據這些角座標輕鬆計算地圖圖像上的正確位置。

1

您可以通過自定義視圖來實現此功能,該視圖可顯示建築平面圖並知道建築物每個角落的精確座標。

僞代碼:

markerX = realWorldX - mapStartX; 
markerY = realWorldY - mapStartY; 

if(isOnMap(markerX, markerY)) 
{ 
    drawMarker(markerX, markerY); 
} 
+0

從邏輯上說,你的概念是正確的@ScouseChris ....但是,我只是想知道,如果你可以給出一個精確的代碼,說明如何將真實字詞位置轉換成地圖? – gumuruh

0

當您收到更新自己的位置,你可以使用的東西線沿線的翻譯現實世界中的位置到圖像中的位置的標記添加到您的自定義視圖

我會做這樣的,

  1. 將標記的谷歌地圖上指示建築物的位置

  2. 在建築物上鑽取會將建築物地圖加載爲自定義視圖。在自定義視圖

我認爲,試圖覆蓋一個谷歌地圖上的建築物的地圖,而可能會複雜得多,通過自定義視圖做它代碼的關係用戶的位置。

除非你有一個巨大的建築物,否則在你的建築物地圖上覆蓋最低的縮放級別也不會給你足夠的分辨率。整個街區都很小

您可能已經考慮過的一個問題是,該設備將恢復到手機塔和無線網絡的位置,當它位於建築物內時會給您一個不太準確的位置修復。