2010-06-08 8 views
3

Je suis en train d'obtenir et afficher un fichier .kml en direct de maps.google.com en utilisantAndroid: Obtenir un fichier KML non valide de google maps

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")); 

Cependant, après l'ouverture du MapView je reçois une notification disant "La carte de la communauté n'a pas pu être affichée car elle contient des erreurs"

Je reçois cette erreur uniquement si je télécharge le fichier .kml directement depuis maps.google. Si je copie exactement le même lien dans ma barre d'adresse, télécharger le fichier .kml, et le télécharger ailleurs, alors cela fonctionne très bien. Je voudrais pouvoir obtenir les cartes directement de Google de cette façon, je peux faire un changement et il serait immédiatement reflété à mes utilisateurs.

Répondre

2

J'ai eu le même problème - si vous utilisez « & » comme séparateur de paramètres, Google Maps pour coupe Android de l'URL, utilisez donc « % 26 » au lieu:

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)); 
1

essayer d'afficher des données téléchargées Android comme un endroit texte (par exemple à travers System.out.println), peut-être il contient une description du message d'erreur google

+0

Comment puis-je faire cela? pas familier avec cela et googler "Android-téléchargé" renvoie où télécharger Android .. –

+0

essayez d'ouvrir ce uri http://maps.google.com/maps/ms?ie=UTF8&hl=fr&msa=0&msid=104538451667315338387.0004887d133ba2ab6eec9&ll=42.029611 , -93.646109 & spn = 0.011396,0.022724 & z = 16l & sortie = kml avec le navigateur de votre appareil Android (ou émulateur) –

+0

En essayant d'ouvrir le lien avec & output = kml ajouté, le gestionnaire de téléchargement a déclaré que le fichier n'a pas pu être téléchargé car le contenu est non pris en charge sur cet appareil (dans l'émulateur). Essayer le lien sans & sortie = kml a montré la carte avec mon contenu personnalisé inclus –

0

si vous créez l'intention avec juste la plaine maps.google.com lien, sans le "& output = kml"?

+0

Essayer sans & sortie = kml donne la même erreur: "La carte de la communauté ne peut pas être affichée car elle contient des erreurs" –

1

J'ai résolu cela il y a un certain temps et j'ai pensé que je mettrais à jour pour toute autre personne confrontée à ce problème. La solution que j'ai utilisée était de copier le lien vers la carte personnalisée, en ajoutant & output = kml, et en utilisant un service de raccourcissement de lien. Pour une raison quelconque, Android n'aime pas l'URL que Google Maps donne, et il n'a absolument aucun problème avec le fichier lui-même.

Ceci est loin d'être une solution élégante, car je me fie à la fois à Google Maps et à My URL shortener of choice pour travailler pour obtenir le fichier KML sur le téléphone de l'utilisateur. Si l'un d'entre eux échoue, mon système ne fonctionnera pas.

Je suis ouvert à d'autres options et changera ma réponse si une autre se présente.

Questions connexes