PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Neue RN-User Landkarte - Versuch



Manf
19.05.2013, 08:36
Es wurde eine neue RN User Landkarte gestartet.

https://maps.google.com/maps/ms?ie=UTF&msa=0&msid=209581201519127458086.0004dcfe1f8fa1f19cae2

Es ist ein Versuch mit Google Maps der hier diskutiert wird.

https://www.roboternetz.de/community/threads/21565-RN-User-Landkarte-eingef%C3%BChrt-jetzt-eintragen!!!/page9?p=578919&viewfull=1#post578919

HannoHupmann
19.05.2013, 13:50
Nur hab ich keine Ahnung wie man sich da einträgt.

malthy
19.05.2013, 13:58
Man muss sich zunächst mit seinem Google-Konto anmelden (was natürlich voraussetzt, dass man eins hat). Dann klickt man auf den roten Button "bearbeiten", worauf im Kartenfenster links oben drei Icons erscheinen, deren mittleres das "Landmarke hinzufügen" Icon ist. Wenn man darauf klickt, kann man ebendieses tun: (s)eine Landmarke hinzufügen. Dann klickt man auf die eigene Landmarke und gibt zB das Link zum eigenen RN-Profil, Interessen, private Homepage und/oder ähnliches an. Links fügt man am besten direkt als HTML ein, man klickt also auf "html bearbeiten" und fügt dann den Code <a href="deine_profil_adresse">Link zum Profil im Roboternetz</a> ein.

RAM
19.05.2013, 14:55
Uuups, ich hab gerade versehentlich die Beschreibung gelöscht....:Haue

Sebas
19.05.2013, 15:08
Hmm habe auf alle fälle mal ein Backup gemacht und die Beschreibung wieder eingefügt.

So und jetzt die Anleitung bitte immer zuerst ganz durchlesen:

1. Man drückt Links auf den Großen Roten Bearbeitungsknopf.
2. Nun kann man links Titel und Beschreibung der Landkarte ändern, dies bitte nicht tun! Stattdessen klickt man oben Links in der Karte(neben den Navigationstasten), neben der Hand auf den blauen Pömpel und setzt ihn an den jeweiligen Wohnort.
3. Nun erscheint ein Eingabe Fenster direkt über der Markierung. Als Titel bitte den Benutzernamen angeben. Nun klickt man neben der Beschreibung auf HTML bearbeiten und packt dort den folgenden angepassten Codeschnipsel rein:
<a href="Hier link zum Profil inklusive http einsetzen">Link zum Profil im Roboternetz</a>
4. Auf Okay drücken.
5. Links auf Fertig drücken.
6. Fertig!!!

malthy
20.05.2013, 19:54
Nicht böse sein, ich push den Thread gerade nochmal nach oben ... :-)

HeXPloreR
21.05.2013, 17:04
hehe, also ich habe, glaube ich, grade meinen ersten "Pümpel" irgendwo auf der Karte verloren - also wenn niemanden die Ortsmarke 22 gehört - dann entferne ich sie mal wieder gelegentlich :-b

Sebas
21.05.2013, 17:12
Ich denke du darfst ihn löschen :-)
Ortsmarke 21 hat glaub ich auch keinen Besitzer

ichbinsisyphos
21.05.2013, 18:37
Habt ihr das Gefühl, der Link funktioniert so?

Übrigens gibts für Google Maps eine API. Ob die das hier auch kann ist eine andere Frage, aber dass sich alle Benutzer selbst eintragen und man sie bittet keine Fehler zu machen, das geht nicht ewig gut ;)

HeXPloreR
21.05.2013, 18:51
Da muss ich "ichbinsisyphos" leider zustimmen. Irgendwann liegt mein Pümpel in der Ostsee oder sonstwo.
Leider habe ich null Ahnung was hier möglich ist und was nicht.

ichbinsisyphos
21.05.2013, 19:20
Ist das eine "Meine Orte"-map, oder wie hast die überhaupt erstellt?

malthy
21.05.2013, 20:19
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?

Sebas
21.05.2013, 21:05
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.

rideyourstyle
21.05.2013, 21:37
So ich habe mich als Schweizer geoutet und mich als erster auf unserem kleinen Ländchen eingetragen! :-)

ichbinsisyphos
21.05.2013, 21:41
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 ...


#!/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")

Edit: die Datei sieht so aus:

<?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>vielleicht hat jemand die Möglichkeit das auszuprobieren.

Sebas
21.05.2013, 23:07
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:

<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>
Wenn du es schaffst noch ein kleines Formular zu basteln in welches man seine Koordinaten eingibt wäre das sehr cool :-)
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.

ichbinsisyphos
24.05.2013, 13:33
Ich hab s mal mit einem Beispiel-KML probiert, vom Prinzip funktioniert das so.
https://maps.google.at/maps?q=http://simplekml.googlecode.com/hg/samples/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.

ichbinsisyphos
25.05.2013, 23:24
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.

oberallgeier
26.05.2013, 08:38
... Webprogrammierung ... KML-Datei ... formProcess.php ...Lauter böhmische Dörfer für mich, wie hatte ich blos vor knapp zwanzig Jahren meine Homepage machen können?


... Was noch fehlt ist eine bequeme Möglichkeit die Position einzugeben ...
ABER mit den Koordinaten - da gibts so hübsche Tools wie den GPS Geoplaner/GeoConverter (http://gpso.de/maps/) . Und zu ähnlichen Operationen wie oben beschrieben hat die Uni / das RRZ Erlangen einen Webbaukasten hier online (http://www.vorlagen.uni-erlangen.de/vorlagen/karten.shtml/googlemaps/tool-map.shtml) gestellt (URL ändert sich alle paar Jahre!). Dort ist u.A. der Punkt der Positionsermittlung nach Latitude und Longitude (http://www.vorlagen.uni-erlangen.de/vorlagen/karten.shtml/googlemaps/tool-map.shtml#geo) ausführlich dargestellt.

Mehr Hilfe ausser Applaus zu den bisherigen Arbeiten kann ich nicht leider bieten.

ichbinsisyphos
26.05.2013, 17:24
Lauter böhmische Dörfer für mich, wie hatte ich blos vor knapp zwanzig Jahren meine Homepage machen könnenphp 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

ichbinsisyphos
27.05.2013, 05:56
Hier mal zu Testen, falls das zufällig auch von außerhalb funktioniert. Die IP wird im Laufe des Tages wiedergeändert, also schnell hacken!

http://85.127.151.83/UserMap/index.php

p.s.: ja, ich hab die abgerundeten Ecken von CSS grad erst entdeckt, ist sehr schwer zu widerstehen ;)

Sebas
27.05.2013, 09:07
Sieht super aus! Kannst du später mal den Code hochladen? Dann versuch ich das mal zu hosten

malthy
27.05.2013, 09:59
Toll! Funktioniert! Vor die erste Zeile könnte man evnt noch "Ort" schreiben, dann ist es noch etwas klarer.

oberallgeier
27.05.2013, 10:29
Hier mal zu Testen, falls das zufällig auch von außerhalb funktioniert ...Klasse! Ist beim Ausfüllen ne Reihenfolge zwingend nötig (kam mir so vor) ?

ichbinsisyphos
27.05.2013, 18:48
Auf der vorhergehenden Seite is ein Link zu github. Und ja, die Reihenfolge ist wichtig, weil php da einfach die Seite immer neu ladet und vom Server nur die Ortsauswahl mitgeschickt bekommt. Alles im Browser "vergisst" er. Damit sich der client was merken kann brauch ich glaub ich Javascript, und damit hatte ich auch noch nichts zu tun.

Also ein bisserl langsam mit hochladen ;) Ich such hier eigentlich immer noch Leute die mehr Ahnung davon haben und sich einbringen.

Hat sich mal jemand überlegt wie wir das mit den Koordinaten verschieben am besten machen kann? Schon nur 1/100° verschieben heißt, man ist oft schon in einem anderen Ort.

TheDarkRose
27.05.2013, 19:59
Ähm, warum fügt man nicht einfach im Profil ein zusätzliches Feld für die Location hinzu? Dies wird dann geocoded als lat/lng abgespeichert und später wird einfach wo die Google Maps mit allen Markern über die API eingebunden...

ichbinsisyphos
27.05.2013, 20:39
Was fehlt ist jemand der sich damit auskennt. Aber irgendwann sollte sowas besser ins Forum eingebunden sein, ja. Aber gleich an der Forensoftware rumdoktoren, inklusive Datenbankzugriff, muss ja auch nicht sein :)

TheDarkRose
29.05.2013, 08:49
Mmmh doch ^^

ichbinsisyphos
29.05.2013, 08:56
http://85.127.149.41/UserMap/

Javascript clientseitig sollt einigermaßen passen. Heute abend werd ich das Versetzen von Orten mit gleichen Koordinaten mal angehen. Wenn sich jemand irgendwie einbringen will, dann kurze Nachricht und ich schalt euch auf github frei.

ichbinsisyphos
30.05.2013, 19:28
So, ich speicher jetzt die Koordinaten doppelt, einmal die eingegebenen und einmal reine "Anzeigekoordinaten", die um die tatsächlichen verschoben sind, sollte es Kollisionen geben.

Wenn ich bei einem Eintrag feststelle, dass die Koordinaten schonmal drin vorkommen, dann verteil ich alle überlappenden in einem Hexagonalgitter rund um die tatsächlichen Koordinaten. nur ~1/1000°, aber wenn man genau schaut, dann sieht mans auch herausgezoomt.

Einverstanden?

http://85.127.144.116/UserMap/

25620

Sebas
30.05.2013, 20:13
Hervorragend! Das ist wirklich sehr schön :-)
Jetzt müssen wir uns nurnoch überlegen wo man das Ding auf Dauer unterbringt, meine Versuche das zu hosten sind leider gescheitert.

ichbinsisyphos
30.05.2013, 21:54
Wo wolltest denn hosten? Die/der Admin(s) hier spielen nicht mit?

ichbinsisyphos
31.05.2013, 22:07
http://85.127.147.9/UserMap/

Wieder ein bisschen herumgespielt. Übrigens, ein Problem ist mir schon aufgefallen, google erlaubt nur 1000 "features" pro Datei. Gestern hab ich mal 1050 Einträge untergebracht, der Rest wird ignoriert.
Wer weiß wieviele sich bei sowas anmelden würden, aber das ganze Forum geht nicht drauf, und die letzte map hatte dem Anschein nach auch mehr.
Keine Ahnung ob man da irgendwie herum kommt.

-schumi-
31.05.2013, 23:05
Der Link zu bisherigen Karte als auch das Abschicken eines "test"-Users (liegt jetzt evtl. für mich unlöschbar in Amerang :)) führt bei mir immer zu:


404. That’s an error.
The requested URL /search was not found on this server. That’s all we know.

( https://maps.google.at/m?q=http://85.127.161.141/UserMap/var/UserMap_woi9yv_1370037733.kmz&oi=nojs )

ichbinsisyphos
31.05.2013, 23:11
Hmm, also bei mir hats grad die Sicherung geschmissen, lol, deswegen war der Server weg. Den test-user hab ich aber vorher schon noch gesehen. Ist auch drin im file. Und du hattest wirklich beim Absenden schon einen Fehler? Oder kommt der Fehler von google-maps?

Neuer link oben upgedated.

-schumi-
31.05.2013, 23:32
Also, der Fehler kam, als ich auf Abschicken gedrückt hab. Ich schätze, das Tool soll nach dem Abschicken die aktuelle Karte anzeigen, und leitet somit auf Google weiter (anscheinend der selbe Link, wie "bisherige Karte"?). Google kann das entsprechende File aber nicht finden.

Wieder der gleiche Fehler ( https://maps.google.at/m?q=http://85.127.147.9/UserMap/var/UserMap_woi9yv_1370037733.kmz&oi=nojs )
(Es lädt kurz die Karte mit dem Link http://85.127.147.9/UserMap/var/UserMap_woi9yv_1370037733.kmz im Suchfeld, dann kommt der 404 Fehler (Ich selbst kann das File aber herunterladen))

Dein Tool hab ich im übrigen noch mal reloaded, so dass FireFox alles neu von deinem Server holen sollte.

ichbinsisyphos
31.05.2013, 23:44
Hmm ,wo hastn den link her? das "m" muss ein "maps" sein, dann gehts bei mir.

https://maps.google.at/maps?q=http://85.127.147.9/UserMap/var/UserMap_woi9yv_1370037733.kmz&oi=nojs

edit: immer noch keine Ahnung, soweit ich das überblicke hab ich da überall das "maps" drin.

Allerdings kommt "&oi=nojs" auch nicht von meinen links, aber das wird wohl keine Probleme machen.

-schumi-
01.06.2013, 00:14
Also wenn ich den Link zum .kmz-File selbst in das Suchfeld auf maps.google.com eintrage, funktioniert das Ganze auch (Meinen Testuser kann ich aber leider mangels Rechte selbst nicht wieder rausschmeissen :/ ). Wenn ich das dann Teile und den resultierenden Link aufs notwendigste zurechtsäge, kommt folgendes raus:
https://maps.google.com/maps?q=http:%2F%2F85.127.147.9%2FUserMap%2Fvar%2FU serMap_woi9yv_1370037733.kmz

Ich glaube, in deinem Link gibt es Probleme mit den Sonderzeichen... (Benutze FireFox auf Elementary OS (Ubuntu -> Debian), vlt. werden da andere Zeichensätze genutzt als unter Windows oder so..)

ichbinsisyphos
01.06.2013, 00:31
uje. Ich verwend fast überall unicode, weil die Umlaute und Sonderzeichen aus den unterschiedlichsten Sprachen die beim geocoden theoretisch rauskommen können sonst Probleme machen. Probier bei Zeiten nochmal, ich hab mal das UTF-8 charset im redirect angegeben, vielleicht reicht das ja schon.

ichbinsisyphos
01.06.2013, 23:17
http://85.127.183.117/UserMap

Wie habt ihr euch das eigentlich vorgestellt? Dass nur einer das verwaltet und man sich in einem Forums-Beitrag anmelden kann?

ichbinsisyphos
05.06.2013, 11:08
Ich glaub um die kml-Datei und Bearbeitung auf einem server führt im Moment kein Weg herum. Ich hab zwar jetzt die ganze Geocodierung auf Javascript verlagert, aber man kann in der API anscheined nur KMLs laden und anzeigen, nicht modifizieren. Auch die "Meine Orte"-map kann man anscheinend nur über den Umweg des KML-exports anzeigen, die Datei dann aber wieder nicht per API modifizeren oder wieder uploaden. Keine Ahnung was es sonst noch für Möglichkeiten gäbe.

lumi
07.11.2013, 02:41
Na endlich mal 'ne Karte wo nicht nur Deutschland, Österreich und die Schweiz drauf ist :-) Drin!!!