jimk
Goto Top

Dynamic Markers für POIs aus Postgresdatenbank

Hallo,

ich bin gerade dabei mich an einem WMS auszuprobieren. Dafür habe ich mir eine Postgres/Postgis Datenbank aufgebaut, mit OSM Daten gefüttert und einen Basic Layer mit Geoserver erstellt.
Jetzt würde ich mir gerne die POI's "Pub" auf der Map als Marker anzeigen lassen so wie bei googlemaps, wenn man etwas sucht.
Dazu habe ich folgendes gefunden, aber ich komme nicht mit der Anleitung klar:

http://wiki.openstreetmap.org/wiki/OpenLayers_Dynamic_POI

Könnt ihr mir weiterhelfen und mir sagen wie ich es schaffe die Marker in meiner Seite einzubetten?

Weiterhin habe ich auch keine Ahnung von Webprogrammierung. face-sad Aber folgendes habe ich schon mal geschrieben um meine Karte anzeigen zu lassen.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
<html xmlns="http://www.w3.org/1999/xhtml">  
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />  
<meta http-equiv="content-language" content="de" />  
<title>Beispiel OpenStreetMap mit Markern</title>
<!-- OpenLayers JavaScript-Bibliothek laden
         (hier wird die JavaScript-Datei direkt vom Server geladen, 
          man kann sie aber auch auf den eigenen Server speichern) --> 
<script type="text/javascript" src="http://www.openlayers.org/api/OpenLayers.js"></script>   
<!-- OpenStreetMap OpenLayers-Layers laden
         (hier wird die JavaScript-Datei direkt vom Server geladen, 
          man kann sie aber auch auf den eigenen Server speichern) --> 
<script type="text/javascript" src="http://www.openstreetmap.org/openlayers/OpenStreetMap.js"></script>   
<script type="text/javascript">   
<!--
        var map;
 
        function init(){
            map = new OpenLayers.Map('map', 
                    { maxExtent: new OpenLayers.Bounds(-20037508.34,-20037508.34,20037508.34,20037508.34), // Maximale Ausdehnung der Karte
                      numZoomLevels: 19, // Zoom Level
                      maxResolution: 156543.0399, // Maximale Auflösung
                      units: 'm', // Einheit 
                      projection: new OpenLayers.Projection("EPSG:900913"), // Kartenprojektion 
                      displayProjection: new OpenLayers.Projection("EPSG:4326") 
                    });
            // Basis-Karten definieren, hier sind "Mapnik und Osmarender die Basiskarten 
			// andere Basiskarten können einfach als Auswahl dazugefügt werden
            // weitere Basiskarten: OpenLayers.Layer.OSM.Maplint oder OpenLayers.Layer.OSM.CycleMap
            var layerMapnik = new OpenLayers.Layer.OSM.Mapnik("Mapnik"); 
			
			var sa = new OpenLayers.Layer.WMS(
                "Karte", 
                "http://localhost:8080/geoserver/wms?", 
                {layers: "Sachsen-Anhalt"} 
            ); 
 
           
 
            map.addLayer(sa);
            // Marker / POI's (Points of interest) hinzufügen 
            var pois = new OpenLayers.Layer.Text( "Marker", 
                    { location:"./textfile.txt", 
                      projection: map.displayProjection
                    });
            map.addLayer(pois);
 
            map.addControl(new OpenLayers.Control.LayerSwitcher());
            // Karte ausrichten
            var lonLat = new OpenLayers.LonLat(11.00,52.00).transform(map.displayProjection,  map.projection);
            map.setCenter (lonLat, 5); // Zoomstufe einstellen
        }
        // -->

</script> 
</head>
<!-- body.onload is called once the page is loaded (call the 'init' function) -->  
<body onload="init();">   
<h1>Beispiel OpenStreetMap mit Markern</h1>
<div style="width:600px; height:400px" id="map"></div>   
<p>Powered by <a href="http://wiki.openstreetmap.org/index.php/Openlayers_POI_layer_example" title="Openlayers POI layer example">Openlayers POI layer example</a> &amp; <a href="http://www.ogee.de/openstreetmap/">ogee.de/openstreetmaps</a></p>  
</body>
</html>

Content-ID: 178178

Url: https://administrator.de/contentid/178178

Ausgedruckt am: 05.11.2024 um 20:11 Uhr