在网页地图图片上加注企业和“圳品”数量信息

Posted 紫郢剑侠

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在网页地图图片上加注企业和“圳品”数量信息相关的知识,希望对你有一定的参考价值。

继续编写“圳品”信息系统,要有一个“概要信息”,统计各县区的企业和“圳品”数量信息,并在地图上标注,这样更直观一些。

标注是将<div>放在地图图片上,每个县(区)一个div,将每个县(区)的企业和“圳品”数量信息放在对应的div里显示。

要让<div>显示在地图图片上,就要用到css的 z-index,地图图片不设置z-index,但将每个县(区)的div的z-index设置为 1。

为了让每个县(区)<div>显示在地图图片的对应区域内,我们需要计算每个县(区)<div>在地图图片的相对左上角坐标。

另外,地图上的每个 县(区)的区域大小不尽相同,区域狭小的 县(区)显示信息有时需要换行,我们这里用div的width来控制。

因为有11个县(区),就将每个县(区)<div>的参数放在一个数组 aAreaMapCoordinate里。

我们首先要取得地图图片左上角位置在网页中的绝对值,这里用getElementPagePosition()来获取,然后动态生成每个县(区)<div>。

实现的效果如下图:

完整的代码如下:

<html>

<body>
<div>
<img
src="http://img.mp.itc.cn/q_70,c_zoom,w_640/upload/20170507/4c68610712bc408d892d205d0e321655_th.jpeg" border="0" usemap="#planetmap" alt="Planets" style="margin-top:0px;" id="mapHc" />
<!-- //相对位置relative
<div id="areaTe" style="position: relative;top:-380px;left:100px; width:100px;border:2px solid red;z-index: 1;">天峨</div>
<div id="areaNd" style="position: relative;top:-420px;left:220px; width:100px;border:2px solid red;z-index: 1;">南丹</div>
<div id="areaHj" style="position: relative;top:-450px;left:350px; width:100px;border:2px solid red;z-index: 1;">环江</div>
<div id="areaLc" style="position: relative;top:-430px;left:460px; width:100px;border:2px solid red;z-index: 1;">罗城</div>
<div id="areaFs" style="position: relative;top:-370px;left:110px; width:100px;border:2px solid red;z-index: 1;">凤山</div>
<div id="areaDl" style="position: relative;top:-390px;left:200px; width:100px;border:2px solid red;z-index: 1;">东兰</div>
<div id="areaJcj" style="position: relative;top:-440px;left:280px; width:100px;border:2px solid red;z-index: 1;">金城江</div>
<div id="areaYz" style="position: relative;top:-440px;left:420px; width:100px;border:2px solid red;z-index: 1;">宜州</div>
<div id="areaBm" style="position: relative;top:-390px;left:130px; width:100px;border:2px solid red;z-index: 1;">巴马</div>
<div id="areaDh" style="position: relative;top:-380px;left:230px; width:100px;border:2px solid red;z-index: 1;">大化</div>
<div id="areaDa" style="position: relative;top:-430px;left:340px; width:100px;border:2px solid red;z-index: 1;">都安</div>
//-->
<script>
function getElementPagePosition(e)

  //计算x坐标
  var actualLeft = e.offsetLeft;
  var current = e.offsetParent;
  while (current !== null)
  
    actualLeft += current.offsetLeft;
    current = current.offsetParent;
  
  //计算y坐标
  var actualTop = e.offsetTop;
  var current = e.offsetParent;
  while (current !== null)
  
    actualTop += (current.offsetTop+current.clientTop);
    current = current.offsetParent;
  
  //返回结果
  return x: actualLeft, y: actualTop


  //县区div在河池地图上的参数
  //参数说明:1:div顶部偏移px,2:div左侧偏移px,3:div宽度px(指定style中的width)
  aAreaMapCoordinate = new Array(
    [0,0],    //hc,0
    [245,270],//jcj,1
    [280,420],//yz,2
    [190,480,70],//lc,3
    [145,335],//hj,4
    [150,220,70],//nd,5
    [155,110,70],//te,6
    [285,200,70],//dl,7
    [350,140,70],//bm,8
    [265,100,70],//fs,9
    [360,350,70],//da,10
    [380,250,70] //dh,11
    );
    //alert(document.getElementById("mapHc"));
    var mapHcLeftTop = getElementPagePosition(document.getElementById("mapHc"));
    var i;
    for (i=0; i <12 ; i++)
    
        document.write('<div class="ts" id="area', i, '" style="position: absolute;top:', aAreaMapCoordinate[i][0]+mapHcLeftTop.y, 'px;left:', aAreaMapCoordinate[i][1]+mapHcLeftTop.x,'px;',(typeof(aAreaMapCoordinate[i][2])!="undefined"? 'width:'+aAreaMapCoordinate[i][2]+'px': null),';z-index: 1;">','xx家企业xx个圳品','</div>');
    
</script>
</div>
</body>
</html>          

以上是关于在网页地图图片上加注企业和“圳品”数量信息的主要内容,如果未能解决你的问题,请参考以下文章

用JavaScript编程控制网页上checkbox选择状态:全选全部取消反选

用JavaScript编程控制网页上checkbox选择状态:全选全部取消反选

JavaScript合并网页表格中内容相同的相邻单元格

如何在图片上加注释,箭头、方框等?

网站优化笔记

手机上获取地图某个定位的经纬度坐标的方法 - 查询经度纬度 - 百度地图app高德地图appEarth地球