peut-on s'il vous plaît dites-moi s'il y a un moyen de charger le fichier kml dans la carte Google dans Android.Android: comment charger KML
grâce
peut-on s'il vous plaît dites-moi s'il y a un moyen de charger le fichier kml dans la carte Google dans Android.Android: comment charger KML
grâce
S'il vous plaît trouver un exemple de code ici qui obtient les données kml de Google et dessine sur la carte:
J'utilise des fichiers GPX sur une carte (Android 1.5) mais il n'y avait rien à charger KML ou GPX. S'il n'a pas été ajouté dans les nouvelles versions d'Android, je suppose que vous devez lire le fichier par vous-même. C'est ce que j'ai fait il y a 10 mois ...
Il y a plusieurs mois, je cherchais une fonction similaire, mais je n'ai pas trouvé le moyen de charger un fichier depuis la SDCard - ou même d'utiliser un fournisseur de contenu. Je n'ai pas regardé depuis.
Cependant, une méthode que je remarquai, ce qui a été utile que j'étais déjà en communication avec un serveur Web
getting maps to accept a dynamically generated KML file?
Cela m'a permis d'envoyer le fichier KML de mon application au serveur (en communication était déjà en place), le serveur stocké KML, attribué une chaîne aléatoire, et renvoyé à l'application, l'application passe ensuite un lien vers le serveur dans le style:
final Intent myIntent = new Intent(android.content.Intent.ACTION_VIEW,
Uri.parse("geo:0,0?q=http://website.com/kml_gen.php?id=1kj312"));
startActivity(myIntent);
le serveur a renvoyé une Liste KML pour l'application cartographique à utiliser.
Une mise à jour après les commentaires ci-dessous:
final Intent myIntent = new Intent(android.content.Intent.ACTION_VIEW,
Uri.parse("geo:0,0?q=http://code.google.com/apis/kml/documentation/KML_Samples.kml"));
startActivity(myIntent);
Essayez d'exécuter le code ci-dessus - vous verrez lorsque vous l'exécutez, l'application google map est ouvert, et il demandera le fichier kml, dans ce cas, échantillons de fichiers de google. C'est une carte avec une superposition, mais c'est maintenant l'application google map qui n'est plus exécutée dans votre application. Pour cette solution, vous devez stocker votre fichier KML sur un serveur Web quelque part - cela a un léger problème en ce sens que l'utilisateur a besoin d'une connexion de données (dont la carte aurait besoin de toute façon - mais si le fichier kml est grand et la connexion lente là peut-être un retard).
Vous avez mentionné que vous aviez un serveur qui produisait des données dynamiques et des données statiques. Si les choses statiques sont les mêmes pour tout le monde et chaque fois qu'un serveur produit des données, je serais tenté de faire produire par le serveur web un document KML bien formaté incluant les deux ensembles de données - l'application google maps, pour autant que je sache charger un fichier KML à partir d'un serveur Web.
L'autre solution, que j'ai utilisée, a été postée ci-dessus - si vous avez les données statiques sur le téléphone (j'irais avec une base de données avec les données), créez une superposition en dessinant les éléments, et aussi demandez les résultats dynamiques du serveur, ajoutez-les à la superposition personnalisée. Cette option signifiera que vous devrez coder toute fonction supplémentaire que vous voulez - c.-à-d. Rechercher la carte pour un emplacement, vue satellite ..... Assurez-vous d'effectuer l'opération dans un thread séparé et pas le thread UI, spécialement lors de la construction grandes superpositions ou vous êtes susceptible d'obtenir une boîte de dialogue Force Close/Wait.
@Scoobler ... merci pour cela. Alors, comment puis-je superposer ce fichier kml sur la carte google? –
@raqz que voulez-vous dire exactement?Avez-vous un fichier kml que vous souhaitez superposer sur la carte - ou avez-vous un ensemble de coordonnées et vous cherchez un moyen de les afficher sur une carte, c'est-à-dire que vous créez dynamiquement un fichier kml? – Scoobler
@Scoobler ... J'ai un fichier kml dont les données sont constantes. J'ai besoin de tracer ces géométries dans le kml sur la carte, c'est-à-dire; superposer cela sur la carte google. En outre, j'ai un autre fichier kml qui est généré dynamiquement sur le serveur et je dois afficher le même sur le téléphone. donc la structure serait, d'abord google map, le prochain fichier constant de kml, puis enfin au-dessus de ces deux-là, c'est le kml généré dynamiquement. Y a-t-il un moyen de le faire? J'apprécie vraiment votre aide ... merci –
@Mathias ... merci beaucoup! mais si je peux vous demander. est-il un moyen d'accéder au kml à partir de la carte SD du téléphone. le kml que j'utilise ne changera jamais. Il est donc inutile de le recevoir du serveur à chaque fois que l'application est activée. merci encore –
bien sûr, vous pouvez le mettre dans un fichier texte et le lire via les méthodes régulières java.io.file –
donc vous voulez dire .. Je dois copier le contenu de kml dans un fichier texte et l'analyser en utilisant la méthode io .. (tokenizer chaîne et des trucs comme ça)? n'est-il pas possible de stocker le kml dans le téléphone et d'utiliser l'analyseur de sax pour l'analyser? –