2010-07-14 17 views
1

Je suis nouveau sur Android et il se peut que je manque des choses très basiques ici.Quel est le secret de l'hébergement de KML personnalisé pour Google Maps Mobile?

J'essaie d'héberger des fichiers KML personnalisés sur un serveur derrière mon pare-feu et d'afficher ces fichiers KML sur l'émulateur Android.

J'ai commencé par écrire une application simple qui utilise un Intent pour afficher la superposition et pointer l'application sur geo: 0,0? Q = http://code.google.com/apis/kml/documentation/KML_Samples.kml. Cela fonctionne dans l'émulateur.

Ensuite, j'ai téléchargé ce fichier KML et l'ai posté sur mon serveur web (Apache 2.2 sur Fedora). J'ai ajouté une directive AddType pour l'extension .kml et j'ai redémarré HTTPD. Lorsque je pointe l'intention de mon application simple vers mon fichier KML hébergé en interne, j'obtiens l'erreur "La carte de la communauté n'a pas pu être affichée car elle contient des erreurs."

j'ai ajouté un code pour essayer de télécharger le fichier KML indépendamment du KML que je puisse vérifier la ligne d'état et similaires:

final HttpClient client = new DefaultHttpClient(); 
final HttpGet get = new HttpGet("http://mycompany.com/data/KML_Samples.kml"); 
try { 
    final HttpResponse resp = client.execute(get); 
    android.util.Log.e("MapOverlays", resp.toString()); 
} catch (Throwable t) { 
    android.util.Log.e("MapOverlays", "Exception", t); 
} 

Avec un point d'arrêt sur la première ligne de message du journal que je peux inspecter la résultats:

statusline = "HTTP/1.1 200 OK"

Content-type: application/vnd.google-earth.kml + xml

Voici le Intent Je suis u chanter:

final Intent intent = new Intent(
android.content.Intent.ACTION_VIEW, 
     Uri.parse("geo:0,0?q=http://mycompany.com/data/KML_Samples.kml")); 
startActivity(intent); 

Ainsi, les deux questions principales sont

  1. Que dois-je faire pour obtenir KML chargé à partir d'un serveur privé?
  2. Quels outils sont disponibles (le cas échéant) pour déterminer ce qui ne va pas avec ce que j'ai fait (quelque chose de plus informatif que "La carte de la communauté ...")?

Merci

Répondre

0

Ceux-ci peuvent être des questions stupides, mais je dois savoir si vous avez vérifié que le fichier KML en question est en fait un fichier KML valide. Un autre problème que vous pouvez rencontrer est que le fichier KML que vous téléchargez contient des liens réseau qui ne sont pas accessibles depuis votre appareil Android.

+0

J'avais supposé que le KML était valide que j'ai téléchargé une copie du site de Google et l'ai posté à mon propre serveur Web. Je vais devoir creuser pour voir s'il y a des liens externes, mais s'il y en avait, alors les deux n'auraient pas échoué? – JoshOfAllTrades

+0

La raison pour laquelle j'ai demandé était que le message d'erreur ne semblait pas lié à votre application. D'après les informations de votre réseau, il semble que le fichier KML soit en fait (est-ce que vous avez vérifié la longueur de la réponse?) Alors les erreurs auxquelles je pourrais penser seraient liées à un fichier KML mal formé. – jjrdk