2013-10-26 70 views
4

這是我在這裏的第一個問題,所以讓右邊移到點瓦發電機到Android谷歌地圖

我有高分辨率的地圖png格式與角落的地理座標,我想在我的Android應用程序中與Google Maps Api集成。

是我迄今所做的:

  • 我已經削減瓷磚地圖256×256像素,並寫了一個URITileProvider。事實證明,地圖有一個偏移量,是傾斜的,必須重新調整大小

  • 我發現MapTiler並嘗試過。它允許設置角點座標並生成瓦片。目前的免費版本產生水印,所以我也檢查了以前的測試版本 - 但在那裏的「y」瓷磚座標放置在另一個半球。當然我可以嘗試映射他們,但它不能解決我的傾斜問題

  • 我也發現和Android應用程序CustomMaps。太棒了!它幾乎正是我想要的,除了它不生成瓷磚。可以選擇一個圖像文件,通過選擇圖像中的點並將它們鏈接到谷歌地圖上,將其放置在地圖上。它也提供了一個很好的概述。

因此,這裏是我的問題:

有一個免費的工具,它結合了功能形式MapTiler和CustomMaps,我可以用它來對準我要映射圖像,並將其分割成有效的瓷磚?

我想過編輯源圖像和通過反覆試驗的方法,但它絕對不是去這裏的路。目前我正在考慮創建我自己的工具,但邏輯上認爲必須有解決方案。

回答

4

我設法解決了這個問題,我以爲我會分享給你。 我寫了我自己的瓷磚發生器。該解決方案肯定不理想,可能需要更多的工作。歡迎任何貢獻。

這裏是使其工作步驟:

  1. 使用谷歌地圖,放大所需區域,粘貼到圖形編輯程序作爲背景層。
  2. 粘貼您的覆蓋地圖到另一層上的圖形程序並將其轉換在後臺地圖
  3. 使用谷歌地圖閱讀儘可能精確地匹配最大/最小經度和緯度
  4. 使用my MapTileGenerator生成磚。
  5. 在Android中使用URITileProvider

    @Override 
    public URL getTileUrl(int x, int y, int zoom) { 
    
        String url = MAP_FILES_URL + x + "-" + y + "-" + zoom + ".png"; 
        try { 
         return new URL(url); 
        } catch (MalformedURLException e) { 
         // ignore 
        } 
        return null; 
    } 
    

我所記錄的過程的短片。它在YouTube上可用:Map Tile Generator Instructions。 不幸的是,它是在拋光,但消息應閱讀上述點後非常清晰。

我很清楚我寫的腳本存在內存管理問題,應該使用引入多線程。我希望我能儘快回覆它。

+0

好男人,我需要你的幫助。我試圖實現這一點,它沒有工作。請,如果它不是很多要問,請聯繫我:[email protected] –