Liteweight CGI Server à utiliser sur la machine locale pour servir KML à Google Earth via Python ou similaire?

StackOverflow https://stackoverflow.com/questions/1885113

  •  19-09-2019
  •  | 
  •  

Question

Salutations,

Je veux écrire un script qui gère les demandes HTTP simples de Google Earth et renvoie KML pour afficher des tuiles de carte qui sont stockées localement. Je voudrais utiliser Python mais n'importe quelle langue est bien. Je n'ai jamais rien fait avec CGI, mais je pense que c'est le moyen le plus simple d'accomplir ma tâche. C'est ce que les documents Google KML utilisent, c'est les scripts Python CGI pour parler à Google Earth. Y a-t-il un serveur CGI que je peux télécharger (et exécuter sur Windows 7, ou si vous avez absolument nécessaire, je pourrais créer une machine virtuelle en cours d'exécution) sur lequel je peux simplement déposer mon script Python et aller?

Fondamentalement, alors que je me déplace autour de l'écran dans Google Earth, il enverra une demande à mon serveur, qui indiquera à Google Earth quoi afficher à l'écran. Simple.

Contexte: Je fais beaucoup de conduite avec mon ordinateur portable à côté de moi, avec un récepteur GPS USB qui met à jour ma position en temps réel sur Google Earth. Mais, comme je suis hors ligne, je ne peux pas télécharger dynamiquement les carreaux de carte de Google Maps afin que je puisse voir les noms de rue et autres. J'ai téléchargé les carreaux de carte et je les ai corrigées ensemble comme une grande PNG pour couvrir la ville dans laquelle je conduirai, puis en important ces images comme une superposition dans Google Earth, mais je voudrais construire un serveur qui s'exécute localement, tape sur Dans une base de données de carreaux de carte stockés sur la machine et sert le KML pour afficher ces tuiles comme une superposition au lieu d'avoir à faire tout ce travail à l'avance à chaque fois que je fais un voyage.

Était-ce utile?

La solution

Cgihttpserver dans la bibliothèque standard.

# current directory containing cgi-bin directory with scripts in
# subclass CGIHTTPRequestHandler and override cgi_directories to change this
#
os.chdir('/path/to/htdocs')

BaseHTTPServer.HTTPServer(('',80), CGIHTTPServer.CGIHTTPRequestHandler).serve_forever()

Ce n'est pas rapide, c'est assez limité (vous ne pouvez rien retourner mais 200 OK Réponses, pour un) et ce n'est probablement pas entièrement sécurisé, mais pour ce genre de travail local, ça va.

Autres conseils

Si j'étais toi, j'utiliserais Cartocheur et Cache Pour faire exactement cela (servant des images raster géoréférencées sur les liaisons HTTP / Python Mapscript disponibles).

Si vous voulez un CGI ordinaire, vous pouvez probablement utiliser LighthTTPD ou NXGINX ou similaire.

Notez également que le grattage des tuiles Google Map atteint très probablement leurs conditions d'utilisation.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top