Notre application Web comprend des capacités de cartographie simples (actuellement uniquement des marqueurs et des superpositions KML sur une carte Google intégrée). Cela fonctionne assez bien; la seule véritable limitation à laquelle nous sommes confrontés est les superpositions KML qui vont au-delà des restrictions de taille et de complexité de Google pour KML .
Nous envisageons de créer notre propre serveur (par exemple GeoServer ou ArcGIS Server); mais cela semble être une étape énorme pour servir (par exemple) 15 Mo de KML lorsque la limite de Google est de 10 Mo.
J'ai besoin d'un examen de santé mentale: existe-t-il un juste milieu entre l'API gratuite et facile de Google pour les superpositions KML et la configuration de mon propre serveur de tuiles?
la source
Réponses:
Étant donné que vous avez déjà investi dans le développement de Google Maps, je vous suggère fortement de transférer toutes les données dans Google Fusion Tables, qui peuvent ensuite être analysées sur la carte de la même manière que KML avec des performances incroyables (voir l'application WNYC Fusion Tables ). Considérez cela comme une mise à niveau vers KML sans avoir à modifier radicalement le front-end.
la source
Vous pouvez décomposer votre KML en plusieurs KML avec un KML parent référençant les plus petits kmls. Au moins, cela réduira la taille de vos fichiers à un niveau respectable et vous permettra de référencer des ensembles de données beaucoup plus volumineux que ceux de KML.
Honnêtement, KML n'est vraiment bon que pour les petits ensembles de données avec peu de fonctionnalités et d'attributs associés. Je ne m'approcherais pas comme source de données de fichiers. Si vous regardez ces fichiers devenir plus gros, je regarderais un autre type de données, ou je descendrais certainement la route GeoServer / MapServer pour les jeux de données distribués.
la source
Si vous n'avez pas investi trop de temps dans votre API Google Maps, vous pouvez passer à OpenLayers qui a un analyseur KML côté client qui peut lire vos propres fichiers KML - voir l'exemple ci-dessous:
http://openlayers.org/dev/examples/kml-layer.html
Cependant, pour un fichier de 15 Mo, cela bloquerait probablement le navigateur. Il est probablement également assez lent sur les serveurs Google lorsque vous approchez de la taille limite des fichiers.
Le niveau de détail de 15 Mo est-il vraiment nécessaire ou pourriez-vous simplifier le KML sans perdre trop d'informations?
Avez-vous besoin d'accéder au vecteur / à la géométrie côté client? Ces données pourraient-elles être servies d'images?
Si aucun de ces éléments n'est possible, vous devrez examiner un type de logiciel de service de carte. Avec GeoServer d'ArcGIS Server, vous pouvez envisager MapServer pour servir le KML ou en tant que WFS. L'avantage d'utiliser un serveur de carte est que les demandes ne renverront que les données dans la carte, ce qui réduit le trafic réseau et les temps de chargement.
la source
Si vous utilisez la version 3, vous pouvez supprimer toutes les informations d'attribut à l'exception d'un identifiant unique et demander ces informations via des appels ajax à un service Web chaque fois qu'un utilisateur clique sur une fonctionnalité. Si vous avez plus de 10 Mo de points, c'est probablement une bonne idée de faire une sorte de clustering au lieu d'afficher tous ces points à la fois. Vous pouvez également séparer vos superpositions au sol dans des fichiers KML distincts.
la source
Avez-vous essayé Google Fusion Tables. http://www.google.com/fusiontables/public/tour/index.html
Vous pouvez charger jusqu'à 100 Mo de données gratuitement.
la source
MapLarge a une solution intéressante - ils peuvent répliquer vos données sur leurs serveurs et ensuite faire le gros du travail pour générer des tuiles à la volée en utilisant leur logiciel propriétaire. Ils proposent des API Javascript qui peuvent ensuite les superposer sur les cartes de base de Google Maps, OpenLayers, etc.
Découvrez certains de leurs exemples - la vitesse est impressionnante:
Ce n'est pas gratuit, mais cela pourrait être une bonne option pour quelqu'un qui ne voulait pas les ennuis et les dépenses liés à la création d'un serveur séparé pour générer ces couches.
la source