2012-03-14 53 views
3

我發現了一些代碼,可以使用.map文件查看離線地圖。但我找不到創建.map文件或爲特定城市或州生成一個.map文件的方法。 任何人都可以告訴我如何創建或生成特定城市或州的.map文件? 我爲顯示使用.MAP文件離線地圖代碼如下:使用.map文件在Android中離線地圖

public class HelloMapView extends MapActivity { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     MapView mapView = new MapView(this); 
     mapView.setClickable(true); 
     mapView.setBuiltInZoomControls(true); 
     mapView.setMapFile(new File("/sdcard/path/to/mapfile.map")); 
     setContentView(mapView); 
    } 
} 

我無法創建一個.MAP文件,請儘快給我提供了一個解決方案。

+0

的MapView沒有setMapFile方法 – viplezer 2012-03-14 14:16:46

+1

我使用mapsforge庫,所以它延伸的MapView設置.MAP文件 – 2012-03-14 14:21:21

+1

@RameshSudrasana因爲你問的問題,人指望你,至少,評論爲主答案。 – 2012-11-28 10:26:50

回答

1

你也可以看看open source map for android。有一個tileource實現可以放在位圖上,它可以用於你的目的。

+0

osmdroid是一個很好的解決方案,按@joshas非常完整的指導/答案。 – 2012-11-28 10:33:47

3

首先,你需要獲取特定城市,州或國家的OpenStreetMap數據。你可以在這裏找到區域摘錄的鏈接:http://wiki.openstreetmap.org/wiki/Planet.osm#Country_and_area_extracts。我建議用PBF獲取數據,因爲它通常是一個較小的下載。如果您需要較小或特定的區域(未提供),則可以在轉換期間使用滲透將其切除(請參閱Osmosis wiki中的邊界框/多邊形)。

接下來,您需要將該數據轉換爲mapsforge地圖格式。它完成滲透(http://wiki.openstreetmap.org/wiki/Osmosis#Latest_Stable_Version)和mapsforge地圖 - 作家插件(http://code.google.com/p/mapsforge/downloads/list)。插件安裝說明如下:http://code.google.com/p/mapsforge/wiki/GettingStartedMapWriter。總之 - 提取滲透,在滲透目錄內創建新的目錄插件並複製map-writer.jar在那裏。現在,從命令行執行這樣的事情:

$ bin/osmosis --rb file=../data/berlin.osm.pbf --mapfile-writer file=/tmp/berlin.map 
1

你可以找到mapsforge

0

我想你想的Android應用程序用於顯示指定地圖離線使用地圖here的名單,這是一個很好的教程。 http://www.haakseth.com/?p=30

您需要做的第一件事就是生成您想要使用Mobile Atlas Creator(MOBAC)應用程序顯示的城市地圖。然後,您可以將地圖渲染到地圖視圖中。