TECHNOLOGIES
FORUMS
JOBS
BOOKS
EVENTS
INTERVIEWS
Live
MORE
LEARN
Training
CAREER
MEMBERS
VIDEOS
NEWS
BLOGS
Sign Up
Login
No unread comment.
View All Comments
No unread message.
View All Messages
No unread notification.
View All Notifications
Answers
Post
An Article
A Blog
A News
A Video
An EBook
An Interview Question
Ask Question
Forums
Monthly Leaders
Forum guidelines
Sana Khan
NA
27
4.9k
On click automatically draw rectangle on the SVG Map
Dec 12 2018 1:46 AM
I tried an example of drawing circle in SVG map but i want to draw rectangle and i am unable to do it. My task is to select one of the rectangle of particular shape from left panel and goto map and then click wherever i want. On cursor click rectangle should be created. There are different size of rectangle on left panel of my website like 3x3, 3x6, 6x6 etc.
below is the example
<html>
<head>
<style>
*, *:before, *:after {
box-sizing: border-box;
padding: 0;
margin: 0;
}
html {
height: 100%;
}
body {
min-height: 100%;
font-family: Lato, sans-serif;
font-size: 100%;
padding: 0;
margin: 10px;
color: #444;
background-color: #fff;
overflow: hidden;
}
svg {
background: radial-gradient(ellipse at center, #fefefe 0%, #cbeeff 100%);
}
rect {
fill: #006da1;
}
circle {
stroke-width: 5;
stroke: #f00;
fill: #ff0;
}
p {
position: absolute;
right: 5px;
bottom: 5px;
padding: 3px 6px;
background-color: rgba(255,255,255,0.8);
}
</style>
</head>
<body>
<svg id=
"mysvg"
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
viewBox=
"0 0 1600 800"
preserveAspectRatio=
"xMidYMid meet"
>
<g id=
"local"
transform=
"scale(4)"
>
<rect x=
"50"
y=
"50"
width=
"100"
height=
"100"
/>
</g>
</svg>
<script>
var
svg = document.getElementById(
'mysvg'
),
NS = svg.getAttribute(
'xmlns'
),
local = svg.getElementById(
'local'
),
coords = document.getElementById(
'coords'
);
// add a circle to the SVG
svg.addEventListener(
'click'
,
function
(e) {
var
t = e.target,
x = e.clientX,
y = e.clientY,
target = (t == svg ? svg : t.parentNode),
svgP = svgPoint(target, x, y),
circle = document.createElementNS(NS,
'circle'
);
circle.setAttributeNS(
null
,
'cx'
, Math.round(svgP.x));
circle.setAttributeNS(
null
,
'cy'
, Math.round(svgP.y));
circle.setAttributeNS(
null
,
'r'
, 10);
target.appendChild(circle);
},
false
);
// translate page to SVG co-ordinate
function
svgPoint(element, x, y) {
var
pt = svg.createSVGPoint();
pt.x = x;
pt.y = y;
return
pt.matrixTransform(element.getScreenCTM().inverse());
}
</script>
</body>
</html>
Reply
Answers (
1
)
How can I find the values of draggable location
Suppose you have to test the following time coordination web