рд░рд╛рдордмрд▓рд░ рдореИрдкреНрд╕ рдореЗрдВ рдЬрд┐рдпреЛрдореЗрдЯреНрд░рд┐рдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдФрд░ рдмрд▓реВрди



рдЬреЛ рд▓реЛрдЧ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдиреНрдп рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рдПрдкреАрдЖрдИ рдореИрдкреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдЪреБрдХреЗ рд╣реИрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд░рд╛рдордмрд░реНрд▓ рдореИрдкреНрд╕ рдПрдкреАрдЖрдИ рдХрд╛ рдЖрд╕рд╛рдиреА рд╕реЗ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдХрдХреНрд╖рд╛рдУрдВ рдФрд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рд╕реЗрдЯ рдХрд╛рдлреА рдорд╛рдирдХ рдФрд░ рд╕реНрдкрд╖реНрдЯ рд╣реИред

рдкреНрд░рд▓реЗрдЦрди рдпрд╣рд╛рдБ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: http://maps.rambler.ru/api/docs ред

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

1. рдПрдХ рдирдХреНрд╢рд╛ рдмрдирд╛рдПрдБред рдпрд╣ рд╕рд░рд▓ рд╣реИ: рд╣рдо рдХрдВрдЯреЗрдирд░ рдкреИрд░рд╛рдореАрдЯрд░ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ

<div id="myMap" style="width:800px;height:600px;"></div> 


... рдФрд░ рдЗрд╕рдореЗрдВ рдорд╛рдирдЪрд┐рддреНрд░ рдорд╛рдирдЪрд┐рддреНрд░ рдбрд╛рд▓реЗрдВ - рдЖрд░рдПрдордПрдкреА рд╡рд░реНрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдгред
 // ,       var map = new RMap('myMap', { //   center: {"lon":37.62074982031279,"lat":55.75337144909794} , zoom: 13, //    styles: { //   Marker: {style: {display: "none"}} }, //dragging: false,    ... //zooming: false,   :       widgets: false, //    controls: false //   }); //     var balloonStyle = { arrowAngle: -30, arrowLength: 20, arrowWidth: 20, backgroundColor: "#00f", backgroundOpacity: 0.75, bindIndex: 3, bindPlace: "50%", borderColor: "white", borderOpacity: 0, borderSize: 0, padding: "10px" }; //      var balloonTmpl = '<p style="color:white;font-size:13px;"><strong style="font-size:15px">${name}</strong> ${desc}</p>'; 


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

 //    var areas = { // kremlin: { name: "", desc: "тАФ   ,  ..  ..", background: "#FF0000", points: [ {"lon":37.61318805816646,"lat":55.74786393721869}, {"lon":37.611128121643006,"lat":55.74931626156693}, {"lon":37.616106301574696,"lat":55.75614145874745}, {"lon":37.62232902648932,"lat":55.7526806043867}, {"lon":37.62374523284919,"lat":55.749606719921196}, {"lon":37.6174366772461,"lat":55.74895318557001} ] }, тАж //     }; 


3. рдЕрдЧрд▓рд╛, рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдПрдВ рдЬреЛ рдХреНрд╖реЗрддреНрд░ рдХреЗ рдмрд╣реБрднреБрдЬ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЛ 0.15 рдХреА рдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ рдХреЗ рд╕рд╛рде рдкреВрд░реА рддрд░рд╣ рд╕реЗ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ (рдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ = 0.5) рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрддред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╣реБрднреБрдЬ рд╡рд░реНрдЧ рдХреЗ рд╕реЗрдЯ рджреГрд╢реНрдп рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

 //       function toggle(area, doShow) { //    ,     if(area.hasBalloon) return; //      area.polygon.setView({ style: { backgroundOpacity: doShow ? 0.5 : 0.15 } }); }; //- function show(area) { toggle(area, true); } function hide(area) { toggle(area, false); } 


4. рдЕрдЧрд▓рд╛, рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдПрдВред рдпрд╣ рдкреЙрд▓реАрдЧреЙрди рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдЙрдирд╕реЗ рд╣реИрдВрдбрд▓рд░ рдЬреЛрдбрд╝рддрд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЗ рдКрдкрд░ рдордВрдбрд░рд╛рдиреЗ рдкрд░ рдмрд╣реБрднреБрдЬ рдХреА рдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ рдХреЛ рдмрджрд▓ рджреЗрдЧрд╛, рдФрд░ рдЬрдм рдЖрдк рдЗрд╕реЗ рд╡рд╛рдкрд╕ рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ рдЗрд╕рдХреА рдореВрд▓ рд╕реНрдерд┐рддрд┐ (рдЕрджреГрд╢реНрдп) рдкрд░ рд▓реМрдЯрд╛ рджреЗрдВред рдмрд╣реБрднреБрдЬ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдкрд░ рдХреНрд▓рд┐рдХ рдХреЗ рд╕реНрдерд╛рди рдкрд░ рд╕реВрдЪрдирд╛ рд╡рд┐рдВрдбреЛ (рддрдерд╛рдХрдерд┐рдд рдЧреБрдмреНрдмрд╛рд░рд╛) рдЦреБрд▓реЗрдЧреАред рдЧреБрдмреНрдмрд╛рд░реЗ рдХреА рд╕рд╛рдордЧреНрд░реА рдФрд░ рдЗрд╕рдХреА рдмрд╣реБрдд рдЙрдкрд╕реНрдерд┐рддрд┐ рдЙрд╕ рд╕реНрдерд╛рди рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИ рдЬрд╣рд╛рдВ рдорд╛рдЙрд╕ рдХреНрд▓рд┐рдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛: рдпрджрд┐ рдЖрдк рдмрд╣реБрднреБрдЬ рдХреЗ рдмрд╛рд╣рд░ рдкреНрд░рд╣рд╛рд░ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

 //     for(var k in areas) { prepareArea(areas[k]); } function prepareArea(area) { //      area.polygon = map.geometry.create("polygon", { points: area.points, style: { lineWidth: 0, //   background: area.background, //    backgroundOpacity: 0 //    } }, true); //   /  area.polygon.on('mouseover', function(evt) { show(area); }); area.polygon.on('mouseout', function(evt) { hide(area); }); //  тАФ   area.polygon.on('lclick', function(evt){ //   map.geometry.remove("marker"); for(var k in areas) areas[k].hasBalloon = false; //  ,   for(var k in areas) if(areas[k] !== area) hide(areas[k]); //      ( showBalloon   ) showBalloon(area, { x: evt.x, y: evt.y }); }); //     if(area.balloonAt) showBalloon(area, area.balloonAt); } 


5. рдФрд░ - рд╡рд╕реАрд▓рд╛: рд╡рд╣ рдХрд╛рд░реНрдп рдЬреЛ рдмрд▓реВрди рдХреЛ рдЦреЛрд▓рддрд╛ рд╣реИред

 function showBalloon(area, crd) { //  var mrkr = map.geometry.create("marker", { coord: map.makeCoord(crd) }, true); //    mrkr.addBalloon({ style: balloonStyle, closeButton: true, content: { name: area.name, desc: area.desc }, template: balloonTmpl }, true); //     тАФ    mrkr.balloon.on('hide', function(evt) { area.hasBalloon = false; for(var k in areas) hide(areas[k]); }); show(area); area.hasBalloon = true; } 


рдЖрдк рдкрд░рд┐рдгрд╛рдо рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдпрд╣рд╛рдВ рдкреВрд░реНрдг рд╕реНрд░реЛрдд рдХреЛрдб рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ ред

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


All Articles