You are not logged in.
- Topics: Active | Unanswered
Announcement
Please create new topics on the new site at community.openstreetmap.org. We expect the migration of data will take a few weeks, you can follow its progress here.***
Pages: 1
#1 2012-08-04 13:29:38
- elpiojo_
- Member
- Registered: 2012-07-11
- Posts: 25
Koordinaten per Link übergeben
Hey, ich hab eine frage, is es möglich Koordinaten per Link zu übergeben und dann auf der Karte anzuzeigen?
ich hab mir ein sql abfrage aufgebaut in dem alle vorhandenen einträge dargestellt werden. daneben hab ich einen link mit anzeigen eingebaut, ich möchte nun wenn ich auf anzeigen klicke das der ausgewählte betrieb dargestellt wird.
$sql = "SELECT name FROM betriebe";
// Mysql Abfrage wird durchgeführt
$result = pg_query($conn, $sql);
// Ergebnis wird ausgegeben
while($row = pg_fetch_object($result)){
echo"<table>";
echo "<tr bgcolor=#dddddd>
<td width=150>$row->name</td>
<td width=80><a href='map.html'>Anzeigen</a></td>
</tr> </table>";
}
pg_close($conn);
?>Offline
#2 2012-08-04 13:38:34
- Dennis[B]
- Member
- Registered: 2009-07-18
- Posts: 1,147
Re: Koordinaten per Link übergeben
Klick einfach mal in der Mapnikkarte auf "Permalink". Dann bekommst Du Links in dieser Art:
http://www.openstreetmap.org/?lat=47.67 … 8&layers=M
---
Offline
#3 2012-08-04 13:39:24
- Alexander Wilms
- Member
- Registered: 2012-08-04
- Posts: 1
Re: Koordinaten per Link übergeben
Hi,
Es müsste doch reichen etwas in der Form eines Permanentlinks aufzurufen. Wenn man dort lat und lon durch mlat und mlon ersetzt wird auch ein Pin angezeigt: http://www.openstreetmap.org/?mlat=-33. … 5&layers=M
Offline
#4 2012-08-04 13:41:24
- wambacher
- Member

- From: Schlangenbad/Wambach, Germany
- Registered: 2009-12-16
- Posts: 16,769
- Website
Re: Koordinaten per Link übergeben
Hey, ich hab eine frage, is es möglich Koordinaten per Link zu übergeben und dann auf der Karte anzuzeigen?
welche Karte?
ich sehe da nur ein php-Schnipsel aber das gesamte "Umfeld" fehlt. ist das ne openlayers-Karte?
Gruss
walter
Offline
#5 2012-08-04 13:52:26
- elpiojo_
- Member
- Registered: 2012-07-11
- Posts: 25
Re: Koordinaten per Link übergeben
welche Karte?
ich sehe da nur ein php-Schnipsel aber das gesamte "Umfeld" fehlt. ist das ne openlayers-Karte?
also meine karte könnte ihr leider nicht sehen da man nur mittels vpn auf den uni server kommt
meine code für die karte schaut wie folgt aus
<html>
<head>
<!-- OpenLayers core js -->
<script src="http://www.openlayers.org/api/OpenLayers.js"></script>
<!-- OpenStreetMap base layer js -->
<script
src="http://www.openstreetmap.org/openlayers/OpenStreetMap.js">
</script>
<script src="http://ecn.dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6.2&mkt=en-us">
</script>
<script type="text/javascript">
var map, selectControl, selectedFeature;
function onPopupClose(evt) {
selectControl.unselect(selectedFeature);
}
function onFeatureSelect(feature) {
selectedFeature = feature;
var tags = feature.attributes;
var infoHtml = "<table>";
for (var key in tags) {
infoHtml += "<tr><td>" + tags[key] + "</td></tr>";
}
infoHtml += "</table>";
popup = new OpenLayers.Popup.FramedCloud("chicken",
feature.geometry.getBounds().getCenterLonLat(),
null,
infoHtml,
null, true, onPopupClose);
feature.popup = popup;
map.addPopup(popup);
}
function onFeatureUnselect(feature) {
map.removePopup(feature.popup);
feature.popup.destroy();
feature.popup = null;
}
function init() {
//set up projections
// World Geodetic System 1984 projection
var WGS84 = new OpenLayers.Projection("EPSG:4326");
// WGS84 Google Mercator projection
var WGS84_google_mercator = new OpenLayers.Projection("EPSG:900913");
//Initialize the map
//creates a new openlayers map in the <div> html element id map
map = new OpenLayers.Map ("map", {
controls:[
//allows the user pan ability
new OpenLayers.Control.Navigation(),
//displays the pan/zoom tools
new OpenLayers.Control.PanZoom(),
//displays a layer switcher
new OpenLayers.Control.LayerSwitcher(),
//displays the mouse position's coordinates in a <div> html element with
new OpenLayers.Control.MousePosition({
div:document.getElementById("coordinates")
})
],
projection: WGS84_google_mercator,
displayProjection: WGS84
} );
//base layers
var apiKey = "Ap3i15CGW7YGzZCAkHqKmf3pVxGwDTAd0NLywcxTH3g71vWW1GgLqcD56B_deegZ";
var road = new OpenLayers.Layer.Bing({
name: "Road",
key: apiKey,
type: "Road",
sphericalMercator: true
});
var stmk = new OpenLayers.Layer.WMS( "stmk", "http://129.27.89.66/cgi-bin/mapserv?",
{ map: "F:/ms4w/Apache/htdocs/student/master_geom/hp/map.map", layers: "stmk", transparent: "true"},
{
isBaseLayer: false,
sphericalMercator: true,
singleTile: true,
opacity:0.8
});
var offen = new OpenLayers.Layer.Vector("offen", {
projection: new OpenLayers.Projection("EPSG:4326"),
isBaseLayer: false,
opacity:0.8,
strategies: [new OpenLayers.Strategy.BBOX({resFactor: 1.1})],
protocol: new OpenLayers.Protocol.HTTP({
url: "offen.php",
format: new OpenLayers.Format.Text()
})
});
var pois = new OpenLayers.Layer.Vector("POIs", {
projection: new OpenLayers.Projection("EPSG:4326"),
isBaseLayer: false,
opacity:0.8,
strategies: [new OpenLayers.Strategy.BBOX({resFactor: 1.1})],
protocol: new OpenLayers.Protocol.HTTP({
url: "allebetriebe.php",
format: new OpenLayers.Format.Text()
})
});
map.addLayers([road, stmk, offen, pois]);
var options = { hover: false, onSelect: onFeatureSelect, onUnselect: onFeatureUnselect };
selectControl = new OpenLayers.Control.SelectFeature([pois,offen], options);
map.addControl(selectControl);
selectControl.activate();
// map extent
var mapextent = new OpenLayers.Bounds(15.39633, 46.61470, 15.56113, 46.72708).transform(WGS84, map.getProjectionObject());
map.zoomToExtent(mapextent);
// Interaction; not needed for initial display.
}
</script>
</head>
<body onload="init()">
<div id="map" style="width:700px; height:700px;"></div>
<div id="coordinates"></div>
</body>
</html>[quote=Dennis[B]]Klick einfach mal in der Mapnikkarte auf "Permalink". Dann bekommst Du Links in dieser Art:
http://www.openstreetmap.org/?lat=47.67 … 8&layers=M[/quote]ich les aber meine daten aus meiner eigenen datenbank aus darin sind auch die koordinaten verspeichert daher müsste ich irgendwie die verspeicherten koordinaten an die karte weitergeben
Last edited by elpiojo_ (2012-08-04 13:52:55)
Offline
#6 2012-08-04 15:39:54
- maxbe
- Member
- Registered: 2010-01-19
- Posts: 3,255
- Website
Re: Koordinaten per Link übergeben
Ersetz mal das da
// map extent
var mapextent = new OpenLayers.Bounds(15.39633, 46.61470, 15.56113, 46.72708).transform(WGS84, map.getProjectionObject());
map.zoomToExtent(mapextent);
durch
// map extent
var mapextent = new OpenLayers.Bounds(15.39633, 46.61470, 15.56113, 46.72708).transform(WGS84, map.getProjectionObject());
if (!map.getCenter()) {map.zoomToExtent(mapextent);}
dann sollte ein Permalink der Form "...?zoom=3&lat=46.7&lon=15.5" funktionieren.
Grüße, Max
Last edited by maxbe (2012-08-04 15:42:55)
Offline
#7 2012-08-04 15:58:18
- elpiojo_
- Member
- Registered: 2012-07-11
- Posts: 25
Re: Koordinaten per Link übergeben
dann sollte ein Permalink der Form "...?zoom=3&lat=46.7&lon=15.5" funktionieren.
das is ja genau mein problem
ich weiß eben nicht wie ich das jetzt mit dem link auf die karte übergeben. wenn ich das jetzt richtig verstehe müsste ich jetzt bei lat=46.7 das feld breite und bei lon= das feld laenge einbauen, damit das automatisch übergeben wird?
Offline
#8 2012-08-04 16:13:10
- fx99
- Member
- From: Baden-Württemberg
- Registered: 2009-06-02
- Posts: 1,930
Re: Koordinaten per Link übergeben
An eine Openlayer Karte kannst Du die Parameter folgendermassen mitgeben:
<a href="sommerreise2012AU.htm?zoom=8&lat=47.5&lon=11.2" target="Bildframe" > Übersicht </a> <br><br>
<a href="sommerreise2012AU.htm?zoom=10&lat=48.2&lon=11.5" target="Bildframe" > München 18.-20.6. </a> <br>sommerreise2012AU.htm
enthält u.a.
</style>
<script src="http://www.openlayers.org/api/OpenLayers.js"></script>
<script src="http://www.openstreetmap.org/openlayers/OpenStreetMap.js"></script>
<script type="text/javascript">
// complex map object
var map;
// Start position for the map (hardcoded here for simplicity,
// but maybe you want to get from URL params)
var lat=47.5; // !! center of map
var lon=11.2;
var zoom=9;
function init(){
map = new OpenLayers.Map('map',
usw. Ich hoffe, das beantwortet Deine Frage.
Offline
#9 2012-08-04 16:38:45
- elpiojo_
- Member
- Registered: 2012-07-11
- Posts: 25
Re: Koordinaten per Link übergeben
An eine Openlayer Karte kannst Du die Parameter folgendermassen mitgeben:
<a href="sommerreise2012AU.htm?zoom=8&lat=47.5&lon=11.2" target="Bildframe" > Übersicht </a> <br><br>
<a href="sommerreise2012AU.htm?zoom=10&lat=48.2&lon=11.5" target="Bildframe" > München 18.-20.6. </a> <br>sommerreise2012AU.htm
enthält u.a.</style>
<script src="http://www.openlayers.org/api/OpenLayers.js"></script>
<script src="http://www.openstreetmap.org/openlayers/OpenStreetMap.js"></script><script type="text/javascript">
// complex map object
var map;// Start position for the map (hardcoded here for simplicity,
// but maybe you want to get from URL params)var lat=47.5; // !! center of map
var lon=11.2;
var zoom=9;function init(){
map = new OpenLayers.Map('map',
usw.
mein problem is aber das ich 25 links habe, das ganze schaut also so aus:
http://imageshack.us/photo/my-images/221/anzeige.png/
ich würde gern dieses lat long autmotisch auslesen aus meiner datenbank
<a href="sommerreise2012AU.htm?zoom=10&lat=[b]$breite[/b]&lon=[b]$laenge[/b]" target="Bildframe" > München 18.-20.6. </a> <br>wäre das dann so richtig?
Last edited by elpiojo_ (2012-08-04 16:39:46)
Offline
#10 2012-08-04 16:52:21
- fx99
- Member
- From: Baden-Württemberg
- Registered: 2009-06-02
- Posts: 1,930
Re: Koordinaten per Link übergeben
mein problem is aber das ich 25 links habe, das ganze schaut also so aus:
http://imageshack.us/photo/my-images/221/anzeige.png/
da seh ich nichts was ich dem hier gesagten zuordnen kann!
ich würde gern dieses lat long autmotisch auslesen aus meiner datenbank
<a href="sommerreise2012AU.htm?zoom=10&lat=[b]$breite[/b]&lon=[b]$laenge[/b]" target="Bildframe" > München 18.-20.6. </a> <br>wäre das dann so richtig?
Ich glaube nicht, dass Du direkt Variable in html reinschreiben kannst, aber mit java script kannst Du den String href="...." schon setzen.
Offline
#11 2012-08-04 17:02:03
- elpiojo_
- Member
- Registered: 2012-07-11
- Posts: 25
Re: Koordinaten per Link übergeben
da seh ich nichts was ich dem hier gesagten zuordnen kann!
naja die namen hab ich rausgelöscht die sind ja auch nicht wichtig ^^ das sollte einfach zeigen wie ich das meine, links stehen namen und rechts steht eben der link der bei klick auf den gewünschten namen in der karte heranzoomt.
vl hab ich mich ein wenig umständlich ausgedrück ![]()
Ich glaube nicht, dass Du direkt Variable in html reinschreiben kannst, aber mit java script kannst Du den String href="...." schon setzen.
ja das is mir klar
deswegen schreibe es ja auch mit php, siehe oben mein php code
Offline
#12 2012-08-04 17:30:53
- maxbe
- Member
- Registered: 2010-01-19
- Posts: 3,255
- Website
Re: Koordinaten per Link übergeben
Alles was da oben steht, bezieht sich auf Permalinks: Du übergibst Länge und Breite und Zoom per Link, rufst eine neue Seite mit Karte auf und die ist dann passend zentriert. Übergeben wirds so wie Du in #7 vermutest.
Das da
links stehen namen und rechts steht eben der link der bei klick auf den gewünschten namen in der karte heranzoomt
klingt aber eher danach als wolltest Du eine bereits sichtbare Karte nachträglich verschieben. So wie bei den Suchergebnissen bei openstreetmap.org.
Da musst Du Deine Links irgendwie so aussehen lassen:
<a href=# onClick="jumptolonlat(Länge,Breite);return false;">Ortsname</a>mit
function jumptolonlat(lon,lat){
var LonLat = new OpenLayers.LonLat(lon,lat).transform(new OpenLayers.Projection("EPSG:4326"),map.getProjectionObject());
map.setCenter(LonLat,12);
}(so ist die Sucherei zumindest bei mir gelöst)
Grüße, Max
Offline
#13 2012-08-04 17:49:52
- elpiojo_
- Member
- Registered: 2012-07-11
- Posts: 25
Re: Koordinaten per Link übergeben
(so ist die Sucherei zumindest bei mir gelöst)
ja genau so hab ich mir das vorgestellt, bei mir wirds dann in der finalen version auch so sein, das es links ein suchfeld gibt, diese hab ich allerdings mit "live suche" gelöst also wird ein buschstabe eingegeben kommen vorschläge. ist der richtige vorschlag dabei klickt man auf anzeigen und zb wie bei dir münchen wird es dann auf der karte zentriert.
<a href=# onClick="jumptolonlat(Länge,Breite);return false;">Ortsname</a>
werd ich mal ausprobieren
habs jetzt zu erst mal mit einer fixen länge und breite probiert aber leider ändert sich daran nichts
$sql = "SELECT name FROM betriebe";
// Mysql Abfrage wird durchgeführt
$result = pg_query($conn, $sql);
// Ergebnis wird ausgegeben
while($row = pg_fetch_object($result)){
echo"<table>";
echo "<tr bgcolor=#dddddd>
<td width=150>$row->name</td>
<td width=80><a href='map.html' onClick='jumptolonlat(46.69,15.45);return false;'>Anzeigen</a></td>
</tr> </table>";
}er sagt mir das jumtolonlat nicht definiert ist, was mir durch aus klar is wenn ich
<script type="text/javascript">nicht mit einbaue, tu ich das wird mir folgender fehler gemeldet SyntaxError: invalid XML attribute value
Last edited by elpiojo_ (2012-08-04 18:26:54)
Offline
#14 2012-08-04 19:25:22
- maxbe
- Member
- Registered: 2010-01-19
- Posts: 3,255
- Website
Re: Koordinaten per Link übergeben
Dieses "jumptolonlat()" ist ja ne selber geschreibene Funktion, der zweite Code-Teil in #12. Das musst Du auch mit einbauen.
Offline
#15 2012-08-05 18:43:38
- elpiojo_
- Member
- Registered: 2012-07-11
- Posts: 25
Re: Koordinaten per Link übergeben
Dieses "jumptolonlat()" ist ja ne selber geschreibene Funktion, der zweite Code-Teil in #12. Das musst Du auch mit einbauen.
das is mir natürlich bewusst ^^ den zweiten code hab ich natürlich in meinen script eingebaut wo die karte aufgerufen wird
man sollte halt nicht länge mit breite verwechseln ^^ danke hat genau so geklappt wie ich mir das vorgestellt habe!
Last edited by elpiojo_ (2012-08-09 11:49:01)
Offline
Pages: 1