Ist das eine "Meine Orte"-map, oder wie hast die überhaupt erstellt?
Druckbare Version
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.
So ich habe mich als Schweizer geoutet und mich als erster auf unserem kleinen Ländchen eingetragen! :-)
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>
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 cool :-)Code:<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.
Lauter böhmische Dörfer für mich, wie hatte ich blos vor knapp zwanzig Jahren meine Homepage machen können?Zitat:
... Webprogrammierung ... KML-Datei ... formProcess.php ...
ABER mit den Koordinaten - da gibts so hübsche Tools wie den GPS Geoplaner/GeoConverter . Und zu ähnlichen Operationen wie oben beschrieben hat die Uni / das RRZ Erlangen einen Webbaukasten hier online gestellt (URL ändert sich alle paar Jahre!). Dort ist u.A. der Punkt der Positionsermittlung nach Latitude und Longitude ausführlich dargestellt.Zitat:
... Was noch fehlt ist eine bequeme Möglichkeit die Position einzugeben ...
Mehr Hilfe ausser Applaus zu den bisherigen Arbeiten kann ich nicht leider bieten.
php ist aber noch gar nicht so schlimm, ist auch mein erstes mal. Das ersetzt nur serverseitig textweise Teile der html-Datei.
Die nächsten Tage werd ich weniger Zeit haben. Ich hoffe immer noch, dass sich einer findet, der von web-Programmierung mehr Ahnung hat.
Inzwischen kann man einen Suchstring eingeben, am besten "Stadt, Land", wenn es mehrere Möglichkeiten gibt, dann werden die in einem dropdown-menü zur Auswahl angezeigt. Die Koordinaten kommen von einem zweiten Python-Skript, das wie weiter oben gepostet geopy verwendet.
Der Rest wie gehabt, aber keine Koordinaten mehr.
Das nächste Problem ist dann die Beschreibung durchzukriegen, der Text wird ganz schön durch die Mangel gedreht, im Moment gehen nichtmal Umlaute durch.
https://github.com/ichbinsisyphos/UserMap