Javascript 计算地图多边形的宽度和高度
假设我有这张地图:Javascript 计算地图多边形的宽度和高度,javascript,jquery,Javascript,Jquery,假设我有这张地图: <map name="diffmap1" id="diffmap1" class="myMap"> <area shape="poly" coords="152,347,253,292,264,307,167,358" class="diff diff1"> <area shape="poly" coords="93,244,164,215,171,233,97,264" class="diff diff2"> </map>
<map name="diffmap1" id="diffmap1" class="myMap">
<area shape="poly" coords="152,347,253,292,264,307,167,358" class="diff diff1">
<area shape="poly" coords="93,244,164,215,171,233,97,264" class="diff diff2">
</map>
如何计算每个多边形的最大高度和宽度?以下是HTML代码:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<img src="planets.gif" width="145" height="126" alt="Planets" usemap="#diffmap1">
<map name="diffmap1" id="diffmap1" class="myMap">
<area id="area1" shape="poly" coords="152,347,253,292,264,307,167,358" class="diff diff1">
<area id="area2" shape="poly" coords="93,244,164,215,171,233,97,264" class="diff diff2">
</map>
致以最良好的祝愿 可能是位置的重复,我想得到polygonmax的高度和宽度-min=宽度或高度。不要除以2,这里是控制台结果:area1对象{max=118.92854997854805,min=18.601075237738275}area2对象{max=83.00602387778854,min=19.313207915827967}
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<img src="planets.gif" width="145" height="126" alt="Planets" usemap="#diffmap1">
<map name="diffmap1" id="diffmap1" class="myMap">
<area id="area1" shape="poly" coords="152,347,253,292,264,307,167,358" class="diff diff1">
<area id="area2" shape="poly" coords="93,244,164,215,171,233,97,264" class="diff diff2">
</map>
function getDistance(p1,p2){
return Math.sqrt((p2.y - p1.y)*(p2.y - p1.y) + (p2.x - p1.x)*(p2.x - p1.x));
}
$(document).ready(function(){
var area_distances_min_max = new Object();
$.each($('area'), function(){
var arr_coords = $(this).attr('coords').split(',');
var i = 0;
var k = 0;
var arr_real_coords = new Array();
while(i<arr_coords.length){
var obj = new Object();
obj.x = arr_coords[i];
obj.y = arr_coords[++i];
arr_real_coords.push(obj);
i++;
k++;
}
var arr_distances = new Array();
$.each(arr_real_coords, function(){
var current_coord = this;
$.each(arr_real_coords, function(){
if(getDistance(current_coord,this)>0)arr_distances.push(getDistance(current_coord,this))
})
})
var obj = new Object();
obj.max = Math.max.apply(Math,arr_distances);
obj.min = Math.min.apply(Math,arr_distances);
var id = $(this).attr('id')
area_distances_min_max[id] = obj;
})
console.log(area_distances_min_max);
})