|
Suche
|
archiv.hobbybrauer.de mit Google durchsuchen:
|
|
| |
Board Index > > Off Topic Sektion für Schnickschnack > "Wo kommen wir her" |
|
ACHTUNG: Auf dieses Forum kann nur noch lesend zugegriffen werden. Falls Du hier im alten Forum bereits registriert warst, musst Du Dich im neuen Forum mit dem gleichen Usernamen UND der gleichen E-Mailadresse NEU registrieren, damit Dein Ranking (Anzahl Deiner Posts) aus diesem Forum ins neue mit übernommen wird. Zum neuen Forum geht's hier
Senior Member Beiträge: 378 Registriert: 10.12.2004 Status: OfflineGeschlecht:
|
|
erstellt am: 13.9.2007 um 12:59 |
|
|
Hallo,
als der Frika mich eben zur Bierprobe eingeladen hat ( http://hobbybrauer.de/modules.php?name=eBoard&file=viewthread
&tid=4980#pid47857) hab ich mich mal wieder auf die "Wo kommen wir
her"-Seite ( http://hobbybrauer.de/modules.php?name=locator) geklickt,
um zu schauen, wo ich denn hin müsste.
Nur leider kommt man da natürlich nicht weiter, es sei denn, man klickt
sich durch alle Bundesländer und fährt dann mit der Maus über jeden roten
Punkt...
Ab hier an die EDV-Begeisterten:
Da hab ich mir dann gedacht, dass es doch eigentlich recht einfach sein
müsste, anstatt der aktuellen Bundesland-Bilder einfach ein Google-Maps
einzubinden. Man müsste sich einmal ein kleines Skript schreiben, das die
aktuell in der DB gespeicherten Koordinaten in Breiten-/Längengrade
umrechnet und könnte dann mit wenigen Zeilen ein Google-Maps-Mashup
zusammen bauen. Das wäre dann natürlich auch beliebig ausbaufähig in dem
Sinne, dass jeder der Lust hat z.B. ein Foto seiner Brauanlage zu seinem
Marker platzieren könnte, man könnte eine einfache Personensuchfunktion
einbauen, ...
Was haltet Ihr davon, insbes. @Ughi, ich glaube, Du hast doch damals diese
Seite gebaut?
Fabi ____________________ http://fabier.de
|
|
Posting Freak Beiträge: 1705 Registriert: 25.7.2005 Status: OfflineGeschlecht:
|
|
erstellt am: 13.9.2007 um 13:59 |
|
|
Das wäre sicherlich interessant, die Darstellung sollte dann aber etwas
größer sein. loerpel wohnt 10 min von mir, wie soll ich da einen
"vernüftigen" Punkt setzen? ____________________ Ich esse Fleisch, weil mir die kleinen Tofus so leid tun und Saitan
scheisse schmeckt!
|
|
Antwort 1 |
|
Senior Member Beiträge: 378 Registriert: 10.12.2004 Status: OfflineGeschlecht:
|
|
erstellt am: 13.9.2007 um 15:22 |
|
|
Nochmal ich:
ich habe mir mal den Spaß gemacht, die Daten von BaWü in eine kleine
Demo-Landkarte einzuspielen. Sieht dann so aus: http://fabier.de/gm.html
Also ich find das geil
Fabi
Ach ja, und bevor jemand fragt: Nein, ich habe nicht von Hand alle
Positionspunkte übertragen ____________________ http://fabier.de
|
|
Antwort 2 |
|
Gast
|
|
erstellt am: 13.9.2007 um 18:13 |
|
|
Super !
Mehr davon !
So wüsste ich, wo in der Region die HausbrauerInen wohnen.
Allzeit Gut Sud
Hopfen und Malz rein in den Hals
Jürgen
|
|
Senior Member Beiträge: 248 Registriert: 3.4.2006 Status: OfflineGeschlecht:
|
|
erstellt am: 13.9.2007 um 22:23 |
|
|
Huhu,
wie wärs mit Ortsmarken in Google Earth? Einfach den eigenen Ort markieren,
kurze Beschreibung dazu, das ganze als Datei speichern und hier hochladen.
Diese Datei muß erweitert und von jedem hier in der Runde selbständig
ergänzt und erneut hochgeladen werden.
MfG
Thomas
|
|
Antwort 4 |
|
Moderator Beiträge: 4922 Registriert: 5.4.2005 Status: Offline
|
|
erstellt am: 13.9.2007 um 22:28 |
|
|
Hallo Fabi!
Schönes Beispiel!
Lt. Google-Earth hause ich in N49° 59' 57,90'' / O 09° 09' 13,33''
im Raum bei N49° 59' 58,07'' / O 09° 09' 13,21'' ist meine Bierkühltruhe!
Und so bei N49° 59' 58,02'' / O 09° 09' 12,93'' ist meine "Gärwerkstatt"!
Meine fette Drehschüssel sieht man aber leider nicht!
Nun, mancher wird sich nicht so exakt exponieren wollen, aber die Idee
einer besseren Karte hat was!
Uwe ____________________
|
|
Antwort 5 |
|
Posting Freak Beiträge: 824 Registriert: 14.6.2005 Status: OfflineGeschlecht:
|
|
erstellt am: 13.9.2007 um 23:18 |
|
|
Also ich finds auch geil
, sollte man sich wirklich mal Gedanken drüber machen.
Meine Koordinaten: 49 28' 05,37" 08 28' 17,25" Zuhause und
49 27' 06,21" 08 27' 58,76" mein Schrebergarten. ____________________ PS: HIER gehts zur Tauschbörse für Hobbybrauer
|
|
Posting Freak Beiträge: 833 Registriert: 6.4.2003 Status: OfflineGeschlecht:
|
|
erstellt am: 14.9.2007 um 07:42 |
|
|
@raehmle:
Nett! ich wusste gar nicht, dass die die API und alles zur Verfügung
stellen. Dein Beispiel zeigt aber, dass es ziemlich einfach scheint
Natürlich ist mein modul etwas veraltet, und die Einbindung in Google Maps
wäre damit kein Thema! Habe schnell geschaut und festgestellt, dass man
sogar "EventListener" definieren kann, so dass man auf Clicks auf der Karte
reagieren kann.
Ich weiss noch nicht wann ich dazu komme das einzubinden, aber die Idee ist
super! - das Schwierigste wird wohl die Umrechnung der Koordinaten, denke
ich.
Programmiertechnisch für mich Dank der geilen Google API kaum Aufwand.
Vielleicht schreibe ich auch ein neues Modul, und kümmere mich erst später
um die genaue Umrechnung... So genau sind die alten Daten ja nicht... ____________________ Viele Grüße, Matthias
http://www.good-beer.de
|
|
Antwort 7 |
|
Senior Member Beiträge: 378 Registriert: 10.12.2004 Status: OfflineGeschlecht:
|
|
erstellt am: 14.9.2007 um 07:56 |
|
|
Hallo Ughi,
Zitat: | Ich weiss noch nicht
wann ich dazu komme das einzubinden, aber die Idee ist super! - das
Schwierigste wird wohl die Umrechnung der Koordinaten, denke ich.
Programmiertechnisch für mich Dank der geilen Google API kaum Aufwand.
Vielleicht schreibe ich auch ein neues Modul, und kümmere mich erst später
um die genaue Umrechnung... So genau sind die alten Daten ja
nicht... |
die Umrechnung ist einfach - ich habs ja auch net von Hand gemacht
In bin so vorgegangen: Ein Punkt links unten, ein Punkt rechts oben
(Freiburg/Stuttgart). Dazu die Koordinaten in GoogleMaps rausgesucht und
die in Pixeln auf der aktuellen Karte. Daraus kannst Du berechnen, wieviel
Längen-/Breitengrade ein Pixel ist und kannst das relativ zu einem Offset
(hier Freiburg) dann in echte Koordinaten umrechnen. Für die übrigen Karten
müsste man nur noch einen Offset jeweils in GoogleMaps und auf der Karte
ermitteln (der Maßstab der einzelnen Karten stimmt überein, vermute
ich?).
Ich hab dazu ein Mini-Java-Programm geschrieben, kann ich Dir auch schicken
wenn Du willst.
Alternativ kann ich auch bei der Entwicklung des Moduls helfen, will mich
da aber natürlich nicht aufdrängen.
Gruß,
Fabi ____________________ http://fabier.de
|
|
Antwort 8 |
|
Senior Member Beiträge: 378 Registriert: 10.12.2004 Status: OfflineGeschlecht:
|
|
erstellt am: 14.9.2007 um 09:10 |
|
|
So,
ich habe mal BaWü, Niedersachsen, Schleswig-Holstein, NRW, Hessen und
Bayern in die Demo-Karte übernommen (immer noch http://fabier.de/gm.html).
Man sieht jetzt allerdings, dass es recht langsam wird wenn viele Marker
hinterlegt sind. Es wäre also vermutlich clever, nicht alle in die Karte zu
zeichnen sonder (ähnlich wie momentan) verschiedene Auswahlen zu
ermöglichen ("zeige mein Bundesland", "zeige Hessen", ..., "zeige alle",
"suche raehmle").
Jetzt muss ich mal wieder war arbeiten
Fabi ____________________ http://fabier.de
|
|
Antwort 9 |
|
Moderator Beiträge: 4922 Registriert: 5.4.2005 Status: Offline
|
|
erstellt am: 14.9.2007 um 11:48 |
|
|
...wobei man bei "echten" Karten (etwa die Top50er) nicht so ganz "linear"
rechnen kann.
Da sind 20 Clicks in "irgendwas, wie Bogensekunden" gerechnet nicht
unbedingt genau das doppelte von 10.
Denn einmal hat man noch die Erdkrümmung und dann ist die "Erdkugel" eher
etwas "kartoffeliges".
Der Effekt ist mir mal aufgefallen, als ich ein kleines Wander-Suchspiel in
JavaScript gefummelt habe und
die Koordinaten auf der Grafik in "echte" umrechnen wollte.
Uwe ____________________
|
|
Antwort 10 |
|
Posting Freak Beiträge: 833 Registriert: 6.4.2003 Status: OfflineGeschlecht:
|
|
erstellt am: 14.9.2007 um 11:52 |
|
|
Stimmt, der Ma*stab ist bei allen Bundesl*ndern gleich. wie sind denn deine
errechneten Faktoren f*r L*ngen und Breitengrade? Intern speichere ich
deutschland gesamt als Koordinaten ab, und dann rechne ich die Offsets f*r
die Bundesland-Bilder heraus. d.h. ich brauche genau einen Fixpunkt, muss
diesen dann auch in Google maps m*glichst genau finden. Wie waren denn
deine verwendeten Faktoren?
Bez*glich der Ladezeit muss man halt schauen... Grunds*tzlich w*rde ich nur
die Laden, die auch im aktuellen kartenausschnitt zu sehen sind. (via Ajax)
und dann beim navigieren erneut laden. Wenn in einer niedrien Zoomstufe zu
viele in einen Bereich fallen w*rden, kann man sie ja weglassen oder
gruppieren. (spezialmarker) ____________________ Viele Grüße, Matthias
http://www.good-beer.de
|
|
Antwort 11 |
|
Senior Member Beiträge: 378 Registriert: 10.12.2004 Status: OfflineGeschlecht:
|
|
erstellt am: 14.9.2007 um 12:04 |
|
|
Zitat: | ...wobei man bei
"echten" Karten (etwa die Top50er) nicht so ganz "linear" rechnen
kann. |
Das ist schon richtig, aber:
1. Ist der Fehler recht gering wenn man das pro Bundesland macht
2. Sind die Orginaldaten ohnehin beliebig schlecht
Passt also ganz gut so ____________________ http://fabier.de
|
|
Antwort 12 |
|
Senior Member Beiträge: 378 Registriert: 10.12.2004 Status: OfflineGeschlecht:
|
|
erstellt am: 14.9.2007 um 12:06 |
|
|
@ughi: Hier das Programm:
Quelltextbereich einfügen: | import java.io.File;
import java.io.IOException;
import java.util.StringTokenizer;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathExpression;
import javax.xml.xpath.XPathExpressionException;
import javax.xml.xpath.XPathFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
/**
* Download HTML files and convert to xml:
* tidy -asxml -numeric /tmp/x.html | sed "s/<!--.*-->//g" >/tmp/x.xml
*/
public class HobbybrauerCoordinates {
private static DocumentBuilder docBuilder;
private static XPathExpression xPath;
private static LatLngLocation pixTopRight;
private static LatLngLocation refTopRight;
private static LatLngLocation pixBottomLeft;
private static LatLngLocation refBottomLeft;
private static double factorX;
private static double factorY;
static class LatLngLocation {
double y;
double x;
public LatLngLocation(double y, double x) {this.y=y; this.x=x;};
}
static class PixelLocation extends LatLngLocation {
public PixelLocation(int y, int x) { super(y, x); };
};
static class Task {
String fileName;
String title;
LatLngLocation pixOffset;
LatLngLocation realOffset;
public Task(String fileName, String title, PixelLocation pixOffset, LatLngLocation realOffset) {
this.fileName = fileName;
this.title = title;
this.pixOffset = pixOffset;
this.realOffset = realOffset;
};
public void convert() throws SAXException, IOException, ParserConfigurationException, XPathExpressionException {
Document doc = docBuilder.parse(new File(this.fileName));
Object result = xPath.evaluate(doc, XPathConstants.NODESET);
NodeList nodes = (NodeList) result;
System.out.println("// " + this.title);
for (int i=0; i<nodes.getLength(); i++) {
Element topEl = (Element) nodes.item(i);
// ....<span style="...left:...;top:..."><span>membername</span></span>
StringTokenizer tokenizer = new StringTokenizer(topEl.getAttribute("style"), ";");
// skip one style attr.
tokenizer.nextToken();
// get pixel coordinates
int pixX = Integer.parseInt(tokenizer.nextToken().replace("left:", "").replace("px", ""));
int pixY = Integer.parseInt(tokenizer.nextToken().replace("top:", "").replace("px", ""));
PixelLocation memberLoc = new PixelLocation(pixY, pixX);
// the one and only child element is <span>name</span>
Element nameElement = (Element) topEl.getElementsByTagName("span").item(0);
LatLngLocation newMemberLoc = new LatLngLocation(
((memberLoc.y - this.pixOffset.y) * factorY) + this.realOffset.y,
((memberLoc.x - this.pixOffset.x) * factorX) + this.realOffset.x);
String memberName = nameElement.getTextContent().replace("n", "");
String s = String.format("map.addOverlay(new GMarker(new GLatLng(%.4f, %.4f), {draggable:true, title:"%s"}));", new Object[]{newMemberLoc.y, newMemberLoc.x, memberName});
System.out.println(s);
}
}
}
/**
* @param args
* @throws ParserConfigurationException
* @throws IOException
* @throws SAXException
* @throws XPathExpressionException
*/
public static void main(String[] args) throws SAXException, IOException, ParserConfigurationException, XPathExpressionException {
// init xml stuff
docBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
xPath = XPathFactory.newInstance().newXPath().compile("//html/body/table/tr/td/form/div/span/span");
// calculate scale factor pixel<->lat/lng
// Hamburg
pixTopRight = new PixelLocation(51, 300);
refTopRight = new LatLngLocation(53.554994,10.011292);
// Essen
pixBottomLeft = new PixelLocation(349, 30);
refBottomLeft = new LatLngLocation(51.460425, 7.02095);
factorX = (refTopRight.x - refBottomLeft.x) / (pixTopRight.x - pixBottomLeft.x);
factorY = (refTopRight.y - refBottomLeft.y) / (pixTopRight.y - pixBottomLeft.y);
(new Task("/tmp/bawue.xml", "Baden-Wuerttemberg (Offset: Freiburg)", new PixelLocation(258, 40), new LatLngLocation(47.999571, 7.837372))).convert();
(new Task("/tmp/niedersachsen.xml", "Niedersachsen (Offset: Hamburg)", new PixelLocation(51, 300), new LatLngLocation(53.554994, 10.011292))).convert();
(new Task("/tmp/schleswig.xml", "Schleswig-Holstein (Offset: Kiel)", new PixelLocation(114, 161), new LatLngLocation(54.322931, 10.141068))).convert();
(new Task("/tmp/nrw.xml", "NRW (Offset: Dortmund)", new PixelLocation(149, 155), new LatLngLocation(51.513443, 7.46933))).convert();
(new Task("/tmp/hessen.xml", "Hessen (Offset: Frankfurt)", new PixelLocation(229, 83), new LatLngLocation(50.112653, 8.686066))).convert();
(new Task("/tmp/bayern.xml", "Bayern (Offset: Nuernberg)", new PixelLocation(161, 201), new LatLngLocation(49.452057, 11.085892))).convert();
}
} |
edit: sch****e, Backslashes werden rausgeworfen. Ughi, gib mir mal Deine
E-Mail-Adr, dann schick ich Dir das File.
[Editiert am 14.9.2007 um 12:08 von raehmle]
____________________ http://fabier.de
|
|
Antwort 13 |
|
Posting Freak Beiträge: 833 Registriert: 6.4.2003 Status: OfflineGeschlecht:
|
|
erstellt am: 16.9.2007 um 08:58 |
|
|
Nicht nötig, danke, das reicht mir schon
Ich bin faul und verwende ein SQL-Update-Statement mit einer Formel in
diesem Stil:
Quelltextbereich einfügen: | Stralsund 773 119 13,083980 54,309300
Freiburg 300 1037 7,848270 47,998110
Eisenach 539 607 10,314110 50,984390
fx (13.083980-7.848270)/(773-300)
fy (54.309300-47.998110)/(119-1037)
nx (x-539)*(13.083980-7.848270)/(773-300) + 10.314110
ny (y-607)*(54.309300-47.998110)/(119-1037) + 50.984390 |
____________________ Viele Grüße, Matthias
http://www.good-beer.de
|
|
Antwort 14 |
|
Gast
|
|
erstellt am: 17.9.2007 um 13:09 |
|
|
Hallo !
Die von mir auf der Mitgliederkarte gesetzte Ortsmarke wich doch über 20 km
vom der tatsächlichen Position ab. Dazu mußte ich mich auf der Karte von
Fabi erst richtig im Hybridstatus runter vergößern und die Marke neu
setzen. Auch die Marken von mir bekannten Hausbrauern weichen doch ganz
schön ab. Es müßten also doch die genauen Koordinaten eingegeben werden.
So eine genauere Verson wäre schon gut.
Allzeit Gut Sud
Hopfen und Malz rein in Hals
Jürgen
|
|
Member Beiträge: 92 Registriert: 25.9.2004 Status: OfflineGeschlecht:
|
|
erstellt am: 21.9.2007 um 20:25 |
|
|
Hi Leute, lange Zeit ohne zu schreiben!
Ich hab die Mitgliederkarte gesehen und finde es super.
Gut gemacht
Jetzt können wir uns besuchen
Best regards
Alberto
Puerto Montt
CHILE
|
|
Antwort 16 |
|
|
|
Board Index > > Off Topic Sektion für Schnickschnack > "Wo kommen wir her" |
|
|
|
Alle Logos und Warenzeichen auf dieser Seite sind Eigentum der jeweiligen Besitzer und Lizenzhalter. Im übrigen gilt Haftungsausschluss. Weitere Details findest Du im Impressum. |
Die Artikel sind geistiges Eigentum des/der jeweiligen Autoren, alles andere © 1998 - 2022 by Hobbybrauer.de |
|
|
|