You are not logged in.

Announcement

*** NOTICE: forum.openstreetmap.org is being retired. Please request a category for your community in the new ones as soon as possible using this process, which will allow you to propose your community moderators.
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 smile

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 big_smile big_smile big_smile

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 smile 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.

SM5K wrote:

OK, trotzdem vielen Dank smile 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.

SM5K wrote:

bin nicht sicher ob ich die Frage richtig verstehe.

Deiner Antwort nach hast du vermutlich richtig verstanden wink

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.

SM5K wrote:

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

j42at4rz82dy.png

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.

wambacher wrote:

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

Board footer

Powered by FluxBB