<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>';
// 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} ] }, … // };
// 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); }
// 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); }
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/149258/
All Articles