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.***
#1 2013-10-01 17:23:18
- SM5K
- Member
- Registered: 2013-10-01
- Posts: 7
[Gelöst]Marker im Zentrum eines Suchergebnisses anzeigen.
Hallo Community,
habe ein kleines Problem das für Euch wahrscheinlich nicht so schwer zu lösen ist wie für mich ![]()
Hier mein Beispielcode:
_________________________________________________________________________________________________________________________________
<script type="text/javascript">
var map, layer;
function init() {
OpenLayers.ProxyHost = "/proxy.cgi?url=";
map = new OpenLayers.Map('map', {
controls: [
new OpenLayers.Control.PanZoom(),
new OpenLayers.Control.Permalink(),
new OpenLayers.Control.Navigation()
]
});
layer = new OpenLayers.Layer.OSM("OpenStreetMap", null, {
transitionEffect: 'resize',format:'image/jpeg',
});
map.addLayers([layer]);
map.zoomToMaxExtent();
}
function submitform() {
var queryString = document.forms[0].query.value;
OpenLayers.Request.POST({
url: "http://www.openrouteservice.org/php/Ope … eocode.php",
scope: this,
failure: this.requestFailure,
success: this.requestSuccess,
headers: {"Content-Type": "application/x-www-form-urlencoded"},
data: "FreeFormAdress=" + encodeURIComponent(queryString) + "&MaxResponse=1"
});
}
function requestSuccess(response) {
var format = new OpenLayers.Format.XLS();
var output = format.read(response.responseXML);
if (output.responseLists[0]) {
var geometry = output.responseLists[0].features[0].geometry;
var foundPosition = new OpenLayers.LonLat(geometry.x, geometry.y).transform(
new OpenLayers.Projection("EPSG:4326"),
map.getProjectionObject()
);
map.setCenter(foundPosition, 16);
} else {
alert("Sorry, no address found");
}
}
function requestFailure(response) {
alert("An error occurred while communicating with the OpenLS service. Please try again.");
}
</script>
</head>
<body onload="init()">
<form name="input" action="javascript: submitform();" method="post">
<label for="query">Adressuche:</label> <input type="text" id="query" size=50 name="query"
value="Hier bitte den Ort eintippen"/>
<input type="submit" value="Submit"/>
</form>
<br>
<div
id="map"
style="width:1024px; height:512px; border:3px solid #000">
</div>
</body>
</html>
_______________________________________________________________________________________________________________________________
Hier soll dann auf dem Suchergebnis im Zentrum der Map ein Marker angezeigt werden. - Natürlich habe ich vor diesem Post erst mal ein paar Referenze gewälzt.
Hier der BeispielCode um einen Marker zu positionieren:
______________________________________________________________________
var lonLat = new OpenLayers.LonLat( -0.1279688 ,51.5077286 )
.transform(
new OpenLayers.Projection("EPSG:4326"), // transform from WGS 1984
map.getProjectionObject() // to Spherical Mercator Projection
);
var zoom=16;
var markers = new OpenLayers.Layer.Markers( "Markers" );
map.addLayer(markers);
markers.addMarker(new OpenLayers.Marker(lonLat));
map.setCenter (lonLat, zoom);
</script>
_______________________________________________________________________
Bei genauerer Betrachtung stellt man aber fest, das der Marker vorher auf eine bestimmte position definiert wurde(OpenLayers.LonLat( -0.1279688 ,51.5077286 )).
Für mein Problem muss LonLat für den Marker aber aus dem Suchergebnis kommen.
Hat jemand von Euch vielleicht einen Ansatz, wie bzw. wo das im oberen Code zu bewerkstelligen wäre?
Schon mal Dank
![]()
Last edited by SM5K (2013-10-01 17:43:22)
Offline
#2 2013-10-01 17:42:45
- SM5K
- Member
- Registered: 2013-10-01
- Posts: 7
Re: [Gelöst]Marker im Zentrum eines Suchergebnisses anzeigen.
OK, trotzdem vielen Dank
Habs schon glücklicherweise selbst lösen können.
Hier aber der Code falls es mal jemand braucht.
____________________________________________________________________________________-
...............................
function requestSuccess(response) {
var format = new OpenLayers.Format.XLS();
var output = format.read(response.responseXML);
if (output.responseLists[0]) {
var geometry = output.responseLists[0].features[0].geometry;
var foundPosition = new OpenLayers.LonLat(geometry.x, geometry.y).transform(
new OpenLayers.Projection("EPSG:4326"),
map.getProjectionObject()
);
map.setCenter(foundPosition, 16);
var lonLat = new OpenLayers.LonLat(geometry.x, geometry.y )
.transform(
new OpenLayers.Projection("EPSG:4326"), // transform from WGS 1984
map.getProjectionObject() // to Spherical Mercator Projection
);
var zoom=16;
var markers = new OpenLayers.Layer.Markers( "Markers" );
map.addLayer(markers);
markers.addMarker(new OpenLayers.Marker(lonLat));
map.setCenter (lonLat, zoom);
.......................
_______________________________________________________________-
Offline
#3 2013-10-01 17:52:21
- wambacher
- Member

- From: Schlangenbad/Wambach, Germany
- Registered: 2009-12-16
- Posts: 16,769
- Website
Re: [Gelöst]Marker im Zentrum eines Suchergebnisses anzeigen.
OK, trotzdem vielen Dank
Habs schon glücklicherweise selbst lösen können.
Kleine Frage: Wie so nicht Nominatim? Suchst du Adressen oder was spezielles?
Gruss
walter
Offline
#4 2013-10-01 19:01:58
- SM5K
- Member
- Registered: 2013-10-01
- Posts: 7
Re: [Gelöst]Marker im Zentrum eines Suchergebnisses anzeigen.
Kleine Frage: Wie so nicht Nominatim? Suchst du Adressen oder was spezielles?
Hi Walter,
bin nicht sicher ob ich die Frage richtig verstehe. Ich brauche einfach eine Adressuche das ist korrekt. Nominatim hatte ich noch garnicht auf dem Schirm.
Vielen Dank und einen schönen Abend noch.
Toby
Offline
#5 2013-10-01 19:13:48
- rayquaza
- Member

- From: DE-BW
- Registered: 2012-11-18
- Posts: 2,007
Re: [Gelöst]Marker im Zentrum eines Suchergebnisses anzeigen.
bin nicht sicher ob ich die Frage richtig verstehe.
Deiner Antwort nach hast du vermutlich richtig verstanden ![]()
Offline
#6 2013-10-01 20:20:20
- wambacher
- Member

- From: Schlangenbad/Wambach, Germany
- Registered: 2009-12-16
- Posts: 16,769
- Website
Re: [Gelöst]Marker im Zentrum eines Suchergebnisses anzeigen.
Nominatim hatte ich noch garnicht auf dem Schirm.
Wirklich nicht? Schau mal ganz rechts oben auf "deinen Schirm", wenn du http://www.openrouteservice.org/ aufrufst.
Gruss
walter
Offline
#7 2013-10-01 20:26:26
- Oli-Wan
- Member

- From: NRW
- Registered: 2010-09-14
- Posts: 2,814
Re: [Gelöst]Marker im Zentrum eines Suchergebnisses anzeigen.
Wirklich nicht? Schau mal ganz rechts oben auf "deinen Schirm", wenn du http://www.openrouteservice.org/ aufrufst.
Und die Zeile darüber ist auch nicht uninteressant. Der ORS-Datenbestand feiert bald sein Einjähriges.
No animals were harmed in the writing of this posting.
Offline