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/OpenLSLUS_Geocode.php](http://www.openrouteservice.org/php/OpenLSLUS_Geocode.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>
Adressuche:
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);
_______________________________________________________________________
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