OpenLayers рдпрд╛ рдкрд░рд┐рд╡рд╣рди рдирд┐рдЧрд░рд╛рдиреА рд╕реЗрд╡рд╛ рдХрд░рддреЗ рд╣реИрдВ

рдЪрд▓рддреА рд╡рд╕реНрддреБрдУрдВ рдпрд╛ рдЯреНрд░реИрдХрд░ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЧрдП рдореЛрдмрд╛рдЗрд▓ рдЙрдкрдХрд░рдгреЛрдВ рдХреА рдмрд┐рдХреНрд░реА рдХреЗ рд▓рд┐рдП рдмрд╛рдЬрд╛рд░ рдкрд░ рдХрдИ рдкреНрд░рд╕реНрддрд╛рд╡ рд╣реИрдВред рдЙрдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдореЗрдВ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдордп рдЕрдВрддрд░рд╛рд▓ рдХреЗ рдмрд╛рдж рдХрд┐рд╕реА рднреА рджрд┐рдП рдЧрдП рд╡реЗрдм рдкрддреЗ рдкрд░ рдЬреАрдкреАрдЖрд░рдПрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реВрдЪрдирд╛ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░реНрдп рд╣реЛрддрд╛ рд╣реИред рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░, рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдкреНрд░рд╛рд░реВрдк рдЕрд▓рдЧ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдЯреНрд░реИрдХрд░ рд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдбреЗрдЯрд╛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдореБрджреНрджреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдбреЗрдЯрд╛ рд╣реИ рдФрд░ рд╣рдо рдкрд░рд┐рд╡рд╣рди рдирд┐рдЧрд░рд╛рдиреА рд╕реЗрд╡рд╛ рдмрдирд╛рдирд╛ рд╢реБрд░реВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдРрд╕реА рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдЖрдзрд╛рд░ рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рд╕реЗ рдмрдирддрд╛ рд╣реИ:
рдПрдХ рдирдХреНрд╢рд╛ рдФрд░ рдЙрд╕рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХрд╛ рдЪрдпрди
- рдПрдХ рдмрд┐рдВрджреБ рдпрд╛ рдЪрд┐рддреНрд░ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдФрд░ рдЗрд╕реЗ рдХреИрдкреНрд╢рди
-рдкреЙрд▓рд┐рдЧреЛ рдбрд┐рд╕реНрдкреНрд▓реЗ рдФрд░ рдПрдбрд┐рдЯрд┐рдВрдЧ
- рд▓рд╛рдЗрди рдФрд░ рдЙрд╕рдХреЗ рд╕рдВрдкрд╛рджрди рдХрд╛ рдкреНрд░рджрд░реНрд╢рди
рдмрд╣реБрднреБрдЬ, рд▓рд╛рдЗрдиреЛрдВ, рдмрд┐рдВрджреБрдУрдВ (рдЯреВрд▓рдЯрд┐рдкреНрд╕) рд╕реЗ рдЬреБрдбрд╝реА рдЬрд╛рдирдХрд╛рд░реА
-рд▓рд┐рдорд┐рдЯреЗрдб рдореИрде (рдЧрд┐рдирддреА рдХреА рдЧрдИ рджреВрд░реА, рдмрд╣реБрднреБрдЬ рдХрд╛ рдХреНрд╖реЗрддреНрд░рдлрд▓, рдмрд┐рдВрджреБ рдмрд╣реБрднреБрдЬ рдХрд╛ рд╣реИ)
рдЗрди рд╕рднреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ OpenLayers , рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред


рдирдХреНрд╢рд╛ рдЪрдпрди рдФрд░ рдкреНрд░рджрд░реНрд╢рди
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдкрдиреЗ рдкреГрд╖реНрда рдкрд░ рдЖрдкрдХреЛ рд╡рд╛рдВрдЫрд┐рдд рдЖрдпрд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рджрд┐рд╡реНрдп рддрддреНрд╡ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рдорд╛рдирдЪрд┐рддреНрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧрд╛ред рдПрдХ рдЙрджрд╛рд╣рд░рдг:
div id="map" style="position: absolute; top: 0px; right: 0px; bottom: 0px; left: 0px;" 

OpenLayers рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ:
 script type="text/javascript" src="Scripts/OpenLayers.js" 

рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рдорд╛рдирдЪрд┐рддреНрд░ рдЪрд░ рдмрдирд╛рдПрдВ рдЬрд┐рд╕рдореЗрдВ рдорд╛рдирдЪрд┐рддреНрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдкреЗрдЬ рд▓реЛрдб рдШрдЯрдирд╛ рдкрд░ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдмрдирд╛рдПрдВ, рдЬрд┐рд╕рдореЗрдВ рд╕реАрдзреЗ рдПрдХ рдирдХреНрд╢рд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЛрдб рд╣реЛрдЧрд╛ред рдПрдХ рдЙрджрд╛рд╣рд░рдг:
 body onload="LoadMap()" 

LoadMap рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВ:
 //    EPSG:900913. var maxExtent = new OpenLayers.Bounds(-20037508, -20037508, 20037508, 20037508); var restrictedExtent = maxExtent.clone(); var maxResolution = 156543.0339; //     EPSG:4326. var options = { projection: new OpenLayers.Projection("EPSG:900913"), displayProjection: new OpenLayers.Projection("EPSG:4326"), numZoomLevels: 18, maxResolution: maxResolution, maxExtent: maxExtent, restrictedExtent: restrictedExtent }; //  map = new OpenLayers.Map('map', options); //  - VirtualEarth var veroad = new OpenLayers.Layer.VirtualEarth("Virtual Earth Roads", { 'type': VEMapStyle.Road, sphericalMercator: true }); var veaer = new OpenLayers.Layer.VirtualEarth("Virtual Earth Aerial", { 'type': VEMapStyle.Aerial, hericalMercator: true }); var vehyb = new OpenLayers.Layer.VirtualEarth("Virtual Earth Hybrid", { 'type': VEMapStyle.Hybrid, sphericalMercator: true }); //  - OpenStreet var mapnik = new OpenLayers.Layer.OSM(); //       map.addControl(new OpenLayers.Control.ScaleLine()); map.addControl(new OpenLayers.Control.MousePosition()); //     OpenLayers.Map map.addLayers([ mapnik, veroad, veaer, vehyb]); //    map.addControl(new OpenLayers.Control.LayerSwitcher()); //         var point0 = new OpenLayers.Geometry.Point(37.600328, 55.574624); //      ,       . point0.transform(new OpenLayers.Projection("EPSG:4326"), new OpenLayers.Projection("EPSG:900913")); //       9.    15. map.setCenter(new OpenLayers.LonLat(point0.x, point0.y), 9); } 

Openlayers рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕рд╛рдЗрдЯ рдкрд░, рдЖрдк рдХрдИ рдЙрджрд╛рд╣рд░рдг рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ , рд▓рдЧрднрдЧ рджреЛ рд╕реМред рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рд╕реЗрд╡рд╛ рд╕реЗ рдирдХреНрд╢рд╛ рджреГрд╢реНрдп рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдпрд╣рд╛рдБ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред рдЗрд╕ рд▓реЗрдЦ рдХреЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдХрд╛рд░реНрдп рдЗрди рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдХрд╡рд░ рдХрд░рддреЗ рд╣реИрдВред рдкреНрд░рд╕реНрддреБрдд рдХреЛрдб рдореЗрдВ рдЗрди рдХрд╛рд░реНрдбреЛрдВ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП google рдФрд░ yandex рдХрд╛рд░реНрдбреНрд╕ рдХрд╛ рдХреЛрдИ рдЬреБрдбрд╝рд╛рд╡ рдирд╣реАрдВ рд╣реИред рдЖрдкрдХреЛ рдкрдВрдЬреАрдХрд░рдг рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рд╕реЗрд╡рд╛ рдкрд╣реБрдВрдЪ рдХреБрдВрдЬреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреА рд╣реЛрдЧреА, рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА рдЖрдк рдЗрди рд╕реЗрд╡рд╛рдУрдВ рд╕реЗ рдЬреБрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдЙрдкрд░реЛрдХреНрдд рдХреЛрдб рдХрд╛ рдкрд░рд┐рдгрд╛рдо:
1
рдПрдХ рдмрд┐рдВрджреБ рдпрд╛ рдЪрд┐рддреНрд░ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдФрд░ рдЗрд╕реЗ рдХреИрдкреНрд╢рди
рдРрд╕реА рдкрд░рддреЗрдВ рдмрдирд╛рдПрдВ рдЬреЛ рд╣рдорд╛рд░реА рд╡рд╕реНрддреБрдУрдВ (рдбреЙрдЯреНрд╕ рдФрд░ рдЪрд┐рддреНрд░реЛрдВ) рдХреЛ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░реЗрдВрдЧреАред
 //    .   , ,     , (${} -   ,      ), url  ,  . var styleImage = new OpenLayers.Style( { graphicWidth: 21, graphicHeight: 25, graphicYOffset: -28, label: "${label}", externalGraphic: "http://www.openlayers.org/dev/img/marker.png", fontSize: 12 }); //labelYOffset -       var stylePoint = new OpenLayers.Style( { pointRadius: 5, strokeColor: "red", strokeWidth: 2, fillColor: "lime", labelYOffset: -16, label: "${label}", fontSize: 16 }); //   .   styleMap      .  select     . var vectorPoint = new OpenLayers.Layer.Vector("", { styleMap: new OpenLayers.StyleMap( { "default": stylePoint, "select": { pointRadius: 20} }) }); //     ,       ,         45  var vectorImage = new OpenLayers.Layer.Vector("", { styleMap: new OpenLayers.StyleMap( { "default": styleImage, "select": { rotation: 45} }) }); //    map.addLayer(vectorImage ); map.addLayer(vectorPoint ); 

рдкрд░рддреЗрдВ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИрдВ; рд╣рдо рдРрд╕реЗ рдХрд╛рд░реНрдп рдмрдирд╛рддреЗ рд╣реИрдВ рдЬреЛ рдкрд░рддреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред
 //    . : , , ,  , .  ,          . function addImg(lon,lat,title,ident, layr){ var ttt = new OpenLayers.LonLat(parseFloat(lon), parseFloat(lat)); ttt.transform(new OpenLayers.Projection("EPSG:4326"), new OpenLayers.Projection("EPSG:900913")); // features-   .    : , , ,  for (var k = 0; k < layr.features.length; k++) { //   features  ,       if(layr.features[k].attributes.ImgId==ident) { // move -       layr.features[k].move(ttt); layr.features[k].attributes.label=title; return false; } } var point0 = new OpenLayers.Geometry.Point(parseFloat(lon), parseFloat(lat)); point0.transform(new OpenLayers.Projection("EPSG:4326"), new OpenLayers.Projection("EPSG:900913")); //   Feature   OpenLayers.Feature.Vector layr.addFeatures(new OpenLayers.Feature.Vector(point0, { label: title, name: title, ImgId: ident })); } function addPoint(lon,lat,title,ident){ var ttt = new OpenLayers.LonLat(parseFloat(lon), parseFloat(lat)); ttt.transform(new OpenLayers.Projection("EPSG:4326"), new OpenLayers.Projection("EPSG:900913")); for (var k = 0; k < map.layers[5].features.length; k++) { if(map.layers[5].features[k].attributes.PointId==ident) { map.layers[5].features[k].move(ttt); map.layers[5].features[k].attributes.label=title; return false; } } var point0 = new OpenLayers.Geometry.Point(parseFloat(lon), parseFloat(lat)); point0.transform(new OpenLayers.Projection("EPSG:4326"), new OpenLayers.Projection("EPSG:900913")); map.layers[5].addFeatures(new OpenLayers.Feature.Vector(point0, { label: title, name: title, PointId: ident })); } </code>       : <code> addPoint(37,55.5,' 1','1',map.layers[4]); addPoint(37,55.1,' 2','2',map.layers[4]); addImg(37,55.6,' 1','2',map.layers[5]); addImg(37,55.9,' 2','2',map.layers[5]); 

рдкрд░рд┐рдгрд╛рдо:
1
рдХреЗрд╡рд▓ рдПрдХ рдЫрд╡рд┐ рдЬреЛрдбрд╝реА рдЧрдИ рдХреНрдпреЛрдВрдХрд┐ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдореЗрдВ рд╕рдорд╛рди рдЫрд╡рд┐ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдереЗред рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдирд╛рдо рдХреЛ рдПрдХ рдирдП рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдмрд╣реБрднреБрдЬ рдкреНрд░рджрд░реНрд╢рди рдФрд░ рд╕рдВрдкрд╛рджрди
рдмрд╣реБрднреБрдЬ рдирд┐рд░реНрдорд╛рдг рдХрд╛рд░реНрдп:
 //  :     ,      function addPoly(data,title,ident,layr){ var featuress = Array(); var coords = data.split(';'); for (var i = 0; i < coords.length; i++) { var d = coords[i].split(' '); var ttt = new OpenLayers.LonLat(parseFloat(d[0]), parseFloat(d[1])); var point0 = new OpenLayers.Geometry.Point(ttt.lon, ttt.lat); point0.transform(new OpenLayers.Projection("EPSG:4326"), new OpenLayers.Projection("EPSG:900913")); featuress.push(point0); } //   ,     var linearRing2 = new OpenLayers.Geometry.LinearRing(featuress); var polygonFeature2 = new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Polygon([linearRing2]), { label: title, PolyID: ident }); layr.addFeatures(polygonFeature2); } 

рдмрд╣реБрднреБрдЬ рдбреНрд░рд╛ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХрд╛ рдЙрджрд╛рд╣рд░рдг:
 addPoly('37 55.9;37.5 55.4;37 55','','1',map.layers[5]); 

OpenLayrs рдореЗрдВ рд╕рдВрдкрд╛рджрди OpenLayers.Control.ModifyFeature рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдкрдХреЛ рдЙрд╕ рд╡рд░реНрдЧ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЛ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЙрд╕ рдкрд░рдд рдХреЛ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЖрдк рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ:
 var modef = new OpenLayers.Control.ModifyFeature(map.layers[5]) modef.clickout = false; modef.toggle = false; modef.standalone = true; map.addControls([ modef]); modef.activate(); //   modef.selectFeature(map.layers[5].features[2]); //   var centr = map.layers[5].features[2].geometry.getCentroid() //     map.setCenter(new OpenLayers.LonLat(centr.x, centr.y)); 

рд╕рдВрдкрд╛рджрди рдХреЗ рд╕рдордп рдмрд╣реБрднреБрдЬ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рд╢реАрд░реНрд╖ рдХреЛ рдПрдХ рдмрд┐рдВрджреБ рджреНрд╡рд╛рд░рд╛ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЪреВрдВрдХрд┐ рд╣рдордиреЗ рдмрд╣реБрднреБрдЬ рдХреЛ рдмрд┐рдВрджреБрдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░рдд рдкрд░ рд░рдЦрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕ рдкрд░рдд рдХреА рд╢реИрд▓реА рдЙрди рдкрд░ рд▓рд╛рдЧреВ рдХреА рдЧрдИ рдереАред рдкрд░рд┐рдгрд╛рдо: рдмрд╣реБрднреБрдЬ рдХреЗ рдХреЛрдиреЗ рдкрд░ "рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд" рд▓реЗрдмрд▓ред рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд╕реНрддреБ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкрд░рдд рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рд╣реИред рд╕рдВрдкрд╛рджрди рдореЛрдб рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг:
3
рд╕рдВрдкрд╛рджрди рдореЛрдб рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдирд╛:
 modef.deactivate(); 

рд▓рд╛рдЗрди рдкреНрд░рджрд░реНрд╢рди рдФрд░ рд╕рдВрдкрд╛рджрди
рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рд╣реА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдПрдХ рдмрд╣реБрднреБрдЬ рдПрдХ рд░реЗрдЦрд╛ рд╕реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП AddPoly рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдЖрдкрдХреЛ рдПрдХ рдкрдВрдХреНрддрд┐ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
  layr.addFeatures(polygonFeature2); 

рдкрд░
 layr.addFeatures(linearRing2 ); 

рд╕рдВрдкрд╛рджрди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЕрд▓рдЧ рдирд╣реАрдВ рд╣реИред
рдЯреВрд▓рдЯрд┐рдкреНрд╕
рдЯреВрд▓рдЯрд┐рдк рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рдЗрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдХреЛ рдореИрдк рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛, рдЬреЛ рдХрд┐ рдХреНрд▓рд╛рд╕ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ: OpenLayers.Control.SelectFeatureред
 var selectControl = new OpenLayers.Control.SelectFeature([map.layers[5]]); map.addControls([selectControl], { clickout: true, toggle: false, multiple: false, hover: true, toggleKey: "ctrlKey", multipleKey: "shiftKey" }); selectControl.activate(); 

рдЙрд╕рдХреЗ рдмрд╛рдж, рд▓реЗрдпрд░ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдкрд░ рдХреНрд▓рд┐рдХ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реЛрдЧреАред рдЕрдВрдХ рдЖрдХрд╛рд░ рдореЗрдВ рдмрдврд╝ рдЬрд╛рдПрдВрдЧреЗ, рдЪрд┐рддреНрд░ 45 рдбрд┐рдЧреНрд░реА рдШреВрдорддреЗ рд╣реИрдВред рдПрдХ рдмрд┐рдВрджреБ рдЪрдпрди рдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдмрдирд╛рдПрдВ:
 // on -    map.layers[5].events.on( { "featureselected": function (e) { var HTMLcontent; var point //     HTMLcontent = 'table style="width: 100%;" tr td    td tr table '; //getCentroid() -   ,    ,         point = new OpenLayers.LonLat(e.feature.geometry.getCentroid().x, e.feature.geometry.getCentroid().y); //OpenLayers.Popup.AnchoredBubble -  ,     OpenLayers.Popup var popup = new OpenLayers.Popup.AnchoredBubble("SDVegetationInfo", point, new OpenLayers.Size(100, 100), HTMLcontent, null, false); popup.opacity = 0.9; popup.autoSize = true; popup.setBackgroundColor("#bcd2bb"); //   map.addPopup(popup, true); } //   ,     , "featureunselected": function (e) { setTimeout('if(map.popups.length - 1>-1){map.removePopup(map.popups[map.popups.length - 1]);}', 1000); } }); 

рдпрд╛рддреНрд░рд╛ рдХреА рдЧрдИ рджреВрд░реА рдХреЛ рдЧрд┐рдирддреЗ рд╣реБрдП, рдмрд╣реБрднреБрдЬ рдХрд╛ рдХреНрд╖реЗрддреНрд░рдлрд▓, рдмрд┐рдВрджреБ рдмрд╣реБрднреБрдЬ рдХреЗ рдЕрдВрддрд░реНрдЧрдд рдЖрддрд╛ рд╣реИ
рдХреА рджреВрд░реА рддрдп рдХрд░рддреЗ рд╣реБрдП рдпрд╛рддреНрд░рд╛ рдХреА
 map.layers[4].features[2].feature.geometry.getLength() 

рд▓реИрдВрдбрдлрд┐рд▓ рдХреНрд╖реЗрддреНрд░
 map.layers[4].features[2].feature.geometry.getArea() 

рдмрд╣реБрднреБрдЬ рдмрд┐рдВрджреБ
 map.layers[4].features[2].containsPoint(map.layers[4].features[0]) 

рдкрд┐рдЫрд▓реЗ рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдкреГрд╖реНрда рдкрд░ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: рд▓рд┐рдВрдХ

рдЕрдВрдд рдореЗрдВ, рдореИрдВ рдзреНрдпрд╛рди рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдХрдИ рдХрдВрдкрдирд┐рдпреЛрдВ рдиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдкрдиреЗ рдЯреНрд░реИрдХрд░реНрд╕ рдХреЛ рдУрдкрди рд▓рд╛рдЗрдпрд░реНрд╕ рдХреЛ рд╕рд╕реНрддрд╛ рдФрд░ рдЖрд╕рд╛рди рдмрдирд╛ рджрд┐рдпрд╛ рд╣реИред OpenLayers рдкреНрд░рд▓реЗрдЦрди рдпрд╣рд╛рдБ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред

Source: https://habr.com/ru/post/In145117/


All Articles