2012-10-24 16 views
21

Bản đồ Ý định không làm việc với mức zoom cụ thể cũng như đánh dấu tùy chỉnhAndroid - Làm thế nào để khởi động bản đồ ý định của Google trong ứng dụng Android với vị trí nhất định, mức zoom và đánh dấu

float lat = 40.714728f; 
    float lng = -73.998672f; 

    String maplLabel = "ABC Label"; 
    final Intent intent = new Intent(android.content.Intent.ACTION_VIEW, 
      Uri.parse("geo:0,0?q="+lat+","+lng+"&z=16 (" + maplLabel + ")")); 
    startActivity(intent); 

Bất kỳ ai biết những gì là sai? hoặc làm thế nào để làm như vậy? Tôi muốn hiển thị bản đồ của một số (lat, lng) với nhãn hiệu tùy chỉnh ở mức thu phóng cụ thể.

+0

Đã kiểm tra điều này và nó hoạt động tốt .. bạn chắc chắn bạn đã không để startActivity nhận xét trong mã thực của bạn? – dymmeh

+0

Xin lỗi, lỗi của tôi, tôi quên bỏ nhận xét trong bài đăng này. Tôi đã thử nghiệm nó và Nó cho thấy Không thể tải URL. Cậu đã làm thế nào vậy? – umirza47

+0

Tôi muốn hiển thị vị trí này ở mức thu phóng 16 với điểm đánh dấu, Nó hoạt động cho vị trí và điểm đánh dấu nhưng khi tôi áp dụng tham số z thì nó sẽ không hoạt động ở tất cả – umirza47

Trả lời

73

Hãy thử giải pháp sau đây:

double latitude = 40.714728; 
double longitude = -73.998672; 
String label = "ABC Label"; 
String uriBegin = "geo:" + latitude + "," + longitude; 
String query = latitude + "," + longitude + "(" + label + ")"; 
String encodedQuery = Uri.encode(query); 
String uriString = uriBegin + "?q=" + encodedQuery + "&z=16"; 
Uri uri = Uri.parse(uriString); 
Intent intent = new Intent(android.content.Intent.ACTION_VIEW, uri); 
startActivity(intent); 

Credit goes here: Answer

Tôi tin rằng vấn đề phải làm với các khoảng trống trong nhãn của bạn. Mã hóa các chuỗi truy vấn sẽ loại bỏ vấn đề này bằng cách thay thế các không gian với các nhân vật có giá trị

+3

Có thể vượt qua hai thông số điểm đánh dấu không? – Arun

+0

Khi nhấn nút quay lại từ ứng dụng bản đồ, sẽ hiển thị màn hình màu đen và hoạt động cơ bản được tạo lại.Bất cứ ý tưởng nào để khắc phục sự cố này? – Jas

+0

@dymmeh Câu trả lời này đã được 4 tuổi. Tôi không thể làm việc này ngay bây giờ. Tôi đã đăng [câu hỏi] mới (http://stackoverflow.com/q/41131414/7292819) nhưng không thể thu hút nhiều sự quan tâm ngoại trừ ai đó nói điều này không hoạt động bắt đầu với Maps 7.x. Bạn có biết gì về những thay đổi trong Maps hoặc các lý do khác mà điều này có thể không hoạt động ngay bây giờ không? – Gary99

1

Hiển thị vị trí trong ứng dụng bản đồ:

Intent intent = new Intent(); 
intent.setAction(Intent.ACTION_VIEW); 
String data = String.format("geo:%s,%s", latitude, longitude); 
if (zoomLevel != null) { 
    data = String.format("%s?z=%s", data, zoomLevel); 
} 
intent.setData(Uri.parse(data)); 
startActivity(intent); 
+0

Khi nhấn nút quay lại từ ứng dụng bản đồ, sẽ hiển thị màn hình màu đen và hoạt động cơ bản được tạo lại.Bất cứ ý tưởng nào để khắc phục sự cố này? – Jas

+0

Bạn mong đợi điều gì sẽ xảy ra @jas? – Recomer

1
Intent intent = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse("http://maps.google.com/maps?daddr=" + location.getLatitude() + "," + location.getLongitude())); 
startActivity(intent); 
Các vấn đề liên quan