2012-12-27 54 views
7

Tôi muốn thử có tích hợp OpenStreetMap bởi osmdroid, nhưng tôi đã gặp khó khăn ở một vấn đề mà tôi không có ý tưởng những gì còn thiếu. Kịch bản như sau:osmdroid hiển thị một lưới trống

Triệu chứng: Tiện ích bản đồ được hiển thị nhưng chỉ với một lưới trống.

Đây là trong lớp học Hoạt động của tôi:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    MapView mapView = new MapView(this, 256); 
    mapView.setTileSource(TileSourceFactory.MAPNIK); 
    mapView.setClickable(true); 
    mapView.setBuiltInZoomControls(true); 
    setContentView(mapView); 
} 

(Tôi cố gắng chọn TileSources khác nhau với vẻ có sự khác biệt)

My Manifest cũng bao gồm những điều khoản (như một đứa trẻ của <manifest>, sau <uses-sdk>) :

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

... và trình giả lập của tôi được kết nối với internet, ví dụ: trình duyệt web hoạt động.

osmdroid và slf4j nằm trong đường dẫn xây dựng. Các ứng dụng biên dịch mà không có một vấn đề và tạo ra không có ngoại lệ.

Điều gì có thể sai?

Rất cám ơn!

GIẢI PHÁP: Điều này là do trình mô phỏng của tôi không có bộ nhớ ngoài để lưu vào bộ đệm bản đồ.

+0

Chỉnh sửa văn bản: Tệp kê khai của tôi cũng bao gồm các quyền này (dưới dạng con của [tệp kê khai], sau [sử dụng-sdk]). – Peter

+0

Tôi đang sử dụng osmdroid 3.0.7 – Peter

+0

có thể bạn cũng có thể giúp tôi ngoài @Peter, ... http://stackoverflow.com/questions/25460443/empty-osmdroid-map-where-to-custom-the- new-map – gumuruh

Trả lời

0

Tôi cũng mới sử dụng OSMdroid nhưng thử làm việc này?

setContentView(R.layout.offline_map_activity); 
mapView = (MapView) findViewById(R.id.openmapview); 

Bạn cũng sẽ cần phải có offline_map_activity.xml trong res của bạn/layouts:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" > 

    <org.osmdroid.views.MapView 
     android:id="@+id/openmapview" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent"/> 
</LinearLayout> 

Hope làm việc này cho bạn. Ít nhất điều này đã làm việc cho các mã của tôi :)

+2

Xin chào! Cảm ơn câu trả lời của bạn! Tuy nhiên, thực tế là một lưới bản đồ trống toàn màn hình đã được hiển thị xác nhận rằng vấn đề của tôi không liên quan đến bố trí: setContentView (mapView) đã hoạt động chính xác. Đêm qua tôi nhận ra nó là một cái gì đó hoàn toàn khác nhau: giả lập của tôi không có lưu trữ bên ngoài ... – Peter

+0

ah tôi thấy không có thắc mắc haha. vui mừng vì bạn đã phát hiện ra sự cố :) – lyk

+0

anyway, @lyk, bạn có thể giúp tôi không? http://stackoverflow.com/questions/25460443/empty-osmdroid-map-where-to-custom-the-new-map – gumuruh

-1

i tink Thiết bị của bạn không có SD. Bạn đã thay đổi Đường dẫn Cache

OpenStreetMapTileProviderConstants.setCachePath(this.getFilesDir().getAbsolutePath()); 
Các vấn đề liên quan