--- step-12/index.html 2023-07-02 13:20:09.119154723 +0000 +++ step-13/index.html 2023-07-02 13:20:09.119154723 +0000 @@ -1,6 +1,6 @@ <html> <head> - <title>Step 12: geometry layer</title> + <title>Step 13: geometry from external source</title> <script src="../OpenLayers.js"></script> <script src="../OpenStreetMap.js"></script> <script src="http://maps.google.com/maps/api/js?sensor=false"></script> @@ -35,7 +35,7 @@ function init() { lat = 52.025; lon = 8.515; - zoom = 15; + zoom = 14; projLonLat = new OpenLayers.Projection("EPSG:4326"); // WGS 1984 projMercator = new OpenLayers.Projection("EPSG:900913"); // Spherical Mercator @@ -71,18 +71,17 @@ map.setCenter(new OpenLayers.LonLat(lon, lat).transform(projLonLat,projMercator), zoom); overviewMap.maximizeControl(); - var layerGeometry = new OpenLayers.Layer.Vector("Gebiete",{projection: projMercator}); + var layerGeometry = + new OpenLayers.Layer.Vector("Gebiete", { + strategies: [new OpenLayers.Strategy.Fixed()], + protocol: new OpenLayers.Protocol.HTTP({ + url: "geom.json", + format: new OpenLayers.Format.GeoJSON() + }), + projection: projMercator + }); map.addLayer(layerGeometry); - var json_data = '{"type":"Polygon","coordinates":[[[946997.668901750002988,6804851.635990919545293],[947398.27435326797422,6805510.242152039892972],[947937.327855485025793,6806519.116099460050464],[947876.502885716035962,6806705.792200200259686],[948839.171578197972849,6807214.812279700301588],[948866.945791151025333,6806943.305583120323718],[948825.81323930202052,6806740.500387510284781],[948825.679655913030729,6806649.948161319829524],[948920.913480286952108,6806218.210386379621923],[949167.475020444951952,6805973.516733709722757],[949428.474698559031822,6805492.619279350154102],[949490.268147898023017,6805254.51523463986814],[949368.818583442945965,6804879.135642670094967],[949300.679923127987422,6804730.331076799891889],[949117.704076112015173,6804232.10446386039257],[948833.071270102052949,6803457.073904880322516],[948178.668511525029317,6803987.724127359688282],[947673.177835781942122,6804222.643158700317144],[946997.668901750002988,6804851.635990919545293]]]}'; - - var geojson_format = new OpenLayers.Format.GeoJSON(); - var geometry = geojson_format.read(json_data, 'Geometry'); - var vector = new OpenLayers.Feature.Vector(geometry); - layerGeometry.addFeatures(vector); - - map.zoomToExtent(layerGeometry.getDataExtent()); - markers = new OpenLayers.Layer.Markers("Markers"); map.addLayer(markers); @@ -110,6 +109,8 @@ }; marker.events.register("mousedown", feature, markerClick); markers.addMarker(marker); + + map.setCenter(new OpenLayers.LonLat(lon, lat).transform(projLonLat,projMercator), zoom); } </script> </head>