Ist das eine "Meine Orte"-map, oder wie hast die überhaupt erstellt?
Ist das eine "Meine Orte"-map, oder wie hast die überhaupt erstellt?
Ja, das Problem ist, dass jeder alles verändern kann - ich glaub auch dass das auf Dauer keine gute Lösung ist. Spätestens wenn es mal Stunk zwischen zwei Leuten gibt, schickt der eine den anderen in Wüste, im wahrsten Sinne des Wortes. Vielleicht kennt sich ja jemand gut mit diesem Google-Karten aus und hat eine Idee was man da machen kann?
Ja momentan ist es eine meine Orte Karte.
Das mit dem Verschieben löse ich momentan so, dass ich des öfteren ein Backup mache, dies ist sicherlich keine Lösung auf Dauer.
Eine schöne Sache wäre ein Skript zu haben, dass aus einem Forum Thread der extra zum registrieren in der Karte ist, ausliest und es in die Map einbaut. Leider habe ich derzeit keinen Webserver, und auch nicht so wirklich die Zeit mich da einzuarbeiten.
Ich werf das einfach mal rein, weil ich im Moment nicht dran weiterarbeiten kann. Das benutzt 2 module, die nicht in der python-Standarddistribution enthalten sind, man kann sie aber mit pip installieren. Mit geopy bekomm man Koordinaten zum Suchbegriff und mit simplekml kann man damit ein KML-file erzeugen, das sich irgendwie auf den maps darstellen lassen sollte.
Angeblich muss man die Datei nur auf einem Webserver zugänglich machen und bei googlemaps in der url als "&q=http://pfad/zum/kml/file" anhängen. Ich kanns nicht ausprobieren weil ich keinen webserver habe.
Ich glaub, dass das ganz brauchbar wäre mit irgendeinem Formular in dem man sich eintragen kann und das kml-file wird hier am Server gehostet. Dann brauchts nur den modifizierten Link zu Google Maps ...
Edit: die Datei sieht so aus:Code:#!/usr/bin/env python # -*- coding: utf-8 -*- import simplekml, geopy g = geopy.geocoders.GoogleV3() place, (lat,lng) = g.geocode("Kärntnerstraße 1, 1001 Wien, Österreich") kml = simplekml.Kml() kml.newpoint(name=u"mein Name halt", coords=[(lat, lng)], description=u"der link würde hier rein kommen") kml.save("mymap.kml")
vielleicht hat jemand die Möglichkeit das auszuprobieren.Code:<?xml version="1.0" encoding="UTF-8"?> <kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2"> <Document id="feat_1"> <Placemark id="feat_2"> <name>mein Nameasd halt</name> <description>der link würde hier rein kommen</description> <Point id="geom_0"> <coordinates>48.2077384,16.3719717,0.0</coordinates> </Point> </Placemark> </Document> </kml>
Geändert von ichbinsisyphos (21.05.2013 um 22:12 Uhr)
Vll schaff ich das am wochenende mal zu testen. werde mir mal was zum hosten einfallen lassen.
Momentan sieht ein Eintrag im KML-File ja so aus:
Wenn du es schaffst noch ein kleines Formular zu basteln in welches man seine Koordinaten eingibt wäre das sehr coolCode:<Placemark> <name>Sebas</name> <description><![CDATA[<div dir="ltr">hallo!<br>Ich interressiere mich für Technikbasteleien aller Art! Du möchtest was bauen und kommst aus der Nähe?<br>Melde dich!<br></div> <a href="https://www.roboternetz.de/community/members/43081-Sebas" target="_blank">Link zum Profil im Roboternetz</a>]]></description> <styleUrl>#style2</styleUrl> <Point> <coordinates>10.690384,53.867916,0.000000</coordinates> </Point> </Placemark>
Koordinaten deshalb, weil bei einer Postleitzahl in einer größeren Stadt alle direkt aufeinander sitzen sonst kann man das manuell ein wenig anpassen. Aber vll kann man das auch in den Code reinpacken, so eine Art Zufallsverteilung um den Punkt rum, muss ja nicht perfekt sein.
Ich hab s mal mit einem Beispiel-KML probiert, vom Prinzip funktioniert das so.
https://maps.google.at/maps?q=http:/...es/samples.kml
Ich wär bereit mich in KML einzuarbeiten - simpleKML, hab ich bemerkt ist da sehr unflexibel und erstellt immer wieder nur eine Datei mit einem Eintrag. Es gibt aber auch pyKML für allgemeine KML-Belange, das ist nicht viel anders als normales XML.
Für den Webprogrammierungsteil bin ich aber sicher der falsche. Außerdem bin ich mir nicht sicher wie man den Ablauf am besten machen sollte. Koordinatenpaare eingeben ist sicher das geringste Problem, aber zum Beispiel interaktiv einen neuen Marker auf der Map setzen geht auf die Art nicht.
Die andere Möglichkeit wär einen Ort einzugeben, zu "geocoden", vielleicht mit Auswahl falls es nicht eindeutig ist und dann auf die erhaltenen Koordinaten blind vertrauen.
Kennt sich niemand hier mit Webprogrammierung aus? Ich habs mal geschafft über ein einaches Formular Namen, Koordinaten und Beschreibung einzugeben, was dann im Endeffekt einen neuen Eintrag macht.
Das ganze ist dann einigermaßen kompliziert geworden, weil ich germerkt habe das eine veränderte KML-Datei mit dem selben Namen nicht neu geladen wird, also muss imer eine neue erstellt werden. Alternativ könnte man mit den "expire"-Werten rumspielen aber davon hab ich keine Ahnung.
index.html enthält das Formular, formProcess.php verarbeitet die Eingaben und ruft das Python-Skript auf. Dieses Skript erwarten 4 Kommandozeilenargument: Name, Beschreibung, Latitude-, Longitude-Kooridnaten.
hostname.dat muss konfiguriert werden, das enthält den Link zur Seite. Ich geh davon aus, dass sich das ganze Zeug in einem Ordner namens "RNUserMap" im webroot-Verzeichnis befidnet.
kmlFilename.dat enthält den Pfad zur letzten KML-Datei. Nach dem ersten einer neuen wird die alte gelöscht und der Pfad zur neuen in die kmlFilename.dat geschrieben.
Der einzige check im Moment ist, ob der Benutzername schon existiert, aber Koordinaten sollten auch kein Problem sein.
Was noch fehlt ist eine bequeme Möglichkeit die Position einzugeben, an die Koordinaten kommt man ja auch bei Googlemaps nicht leicht. Und schiach ist es auch.
Lesezeichen