سؤال

أحاول الحصول على ملف. kml live وعرضه من maps.google.com باستخدام

Uri.parse("geo:0,0?q=http://maps.google.com/maps/ms?ie=UTF8&hl=en&msa=0&msid=104538451667315338387.0004887d133ba2ab6eec9&ll=42.029611,-93.646109&spn=0.011396,0.022724&z=16l&output=kml");

Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapUri);

startActivity(Intent.createChooser(mapIntent, "lol"));

ولكن بعد فتح MapView ، أحصل على إشعار يقول "لا يمكن عرض خريطة المجتمع لأنها تحتوي على أخطاء"

أحصل على هذا الخطأ فقط إذا قمت بتنزيل. kml مباشرة من Maps.Google. إذا قمت بنسخ الرابط نفسه بالضبط في شريط العناوين الخاص بي ، فقم بتنزيل ملف .kml ، وقم بتحميله في مكان آخر ، فهو يعمل بشكل جيد. أود أن أكون قادرًا على الحصول على الخرائط مباشرة من Google بهذه الطريقة يمكنني إجراء تغيير وسيعكس ذلك على الفور لمستخدمي.

هل كانت مفيدة؟

المحلول

واجهت نفس المشكلة - إذا كنت تستخدم "&" كفاصل معلمة ، فإن خرائط Google لنظام Android تقطع عنوان URL ، لذا استخدم "٪ 26" بدلاً من ذلك:

Intent navigateToIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(
    "geo:0,0?q=http://m.konzoomer.com/kml?id=" + id +
    "%26latitudeE12=" + latitudeE12 + "%26longitudeE12=" + longitudeE12 +
    "%26radiusMeters=" + radiusMeters));

نصائح أخرى

حاول عرض البيانات التي يتم تنزيلها بنظام Android كنص في مكان ما (أي thru system.out.println) ، ربما يحتوي على وصف رسالة خطأ Google

لقد حللت هذا منذ فترة وأحسب أنني سأقوم بتحديث أي شخص آخر يواجه هذه المشكلة. كان الحل الذي استخدمته هو نسخ الرابط إلى الخريطة المخصصة ، وإلحاق وإخراج = kml ، واستخدام خدمة تقصير الارتباط. لسبب ما ، لا يحب Android فقط عنوان URL الذي تقدمه خرائط Google ، وليس لديه أي مشكلة على الإطلاق في الملف نفسه.

هذا بعيد عن الحل الأنيق ، حيث أعتمد على كل من خرائط Google و URL المختصر الذي يختار العمل للحصول على ملف KML إلى هاتف المستخدم. إذا فشل أي منهما ، فلن يعمل نظامي.

أنا منفتح على خيارات أخرى وسأغير إجابتي إذا ظهر آخر.

ماذا لو قمت بإنشاء النية باستخدام رابط Maps.Google.com العادي فقط ، بدون "& output = kml"؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top