SOSO地图API使用(一)——在地图上画圆

前言:最近在做SOSO地图相关开发,遇到相关画圆知识,特此简单记录下来。

1.在页面中添加SOSO地图API引用,引用脚本:<script charset="utf-8" src="http://api.map.soso.com/v1.0/main.js"></script>;

2.新建一个地图DIV容器,如下:

   1: <div style="width:603px;height:300px" id="container"></div>

3.初始化地图:

   1: var center=new soso.maps.LatLng(22.540551,113.934593);
   2: var map=new soso.maps.Map(document.getElementById("container"),{
   3:     center:center,
   4:     zoomLevel:14
   5: });

4.创建一个圆形对象:

   1: var circle=new soso.maps.Circle({
   2:        map:map,
   3:        center:center,
   4:        radius:1000,
   5:        fillColor:"#00f",
   6:        fillOpacity:0.3,
   7:        strokeWeight:2
   8:    });

5.为了美观,再给圆形设置一个中心点,代码如下:

   1: var marker = new soso.maps.Marker({
   2:     position: center,
   3:     map: map
   4: });
   5:  
   6: var anchor = new soso.maps.Point(0, 0),
   7:     size = new soso.maps.Size(27, 35),
   8:     icon = new soso.maps.MarkerImage('http://s.map.soso.com/themes/default/img/centermarker.png'
   9:         , size//指定使用图片部分的大小
  10:         , anchor//用来指定图标的锚点,默认为图标中心的位置,可以指定图标的位置,默认是和图片的左上角对齐的。
  11:         , new soso.maps.Point(0, 0)//指定使用图片的哪一部分,相对图片左上角的像素坐标
  12:         , new soso.maps.Size(27, 35)//指定图片的原始大小
  13:         , new soso.maps.Size(-12, -30));//向左偏12px,向上偏30px
  14: marker.setIcon(icon);
  15:  
  16: var decor = new soso.maps.MarkerDecoration({
  17:     content: '',
  18:     margin: new soso.maps.Size(0, -4),
  19:     align: soso.maps.ALIGN.CENTER,
  20:     marker: marker
  21: });

6.完成上面的编码后,得到一个如下图样子的圆形。

image

7.具体代码如下:

   1: <!DOCTYPE html>
   2: <html xmlns="http://www.w3.org/1999/xhtml">
   3: <head>
   4: <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
   5: <title>SOSOMap</title>
   6: <style type="text/css">
   7: *{
   8:     margin:0px;
   9:     padding:0px;
  10: }
  11: body, button, input, select, textarea {
  12:     font: 12px/16px Verdana, Helvetica, Arial, sans-serif;
  13: }
  14: #info{
  15:     width:603px;
  16:     padding-top:3px;
  17:     overflow:hidden;
  18: }
  19: .btn{
  20:     width:190px;
  21: }
  22: </style>
  23: <script charset="utf-8" src="http://api.map.soso.com/v1.0/main.js"></script>
   1:  
 
   
   2:  
 
   
   3: <script type="text/javascript">
 
   
   4: function init(){
 
   
   5:     var center=new soso.maps.LatLng(22.540551,113.934593);
 
   
   6:     var map=new soso.maps.Map(document.getElementById("container"),{
 
   
   7:         center:center,
 
   
   8:         zoomLevel:14
 
   
   9:     });
 
   
  10:     var circle=new soso.maps.Circle({
 
   
  11:         map:map,
 
   
  12:         center:center,
 
   
  13:         radius:1000,
 
   
  14:         fillColor:"#00f",
 
   
  15:         fillOpacity:0.3,
 
   
  16:         strokeWeight:2
 
   
  17:     });
 
   
  18:     
 
   
  19:     var marker = new soso.maps.Marker({
 
   
  20:         position: center,
 
   
  21:         map: map
 
   
  22:     });
 
   
  23:     
 
   
  24:     var anchor = new soso.maps.Point(0, 0),
 
   
  25:         size = new soso.maps.Size(27, 35),
 
   
  26:         icon = new soso.maps.MarkerImage('http://s.map.soso.com/themes/default/img/centermarker.png'
 
   
  27:             , size//指定使用图片部分的大小
 
   
  28:             , anchor//用来指定图标的锚点,默认为图标中心的位置
 
   
  29:             , new soso.maps.Point(0, 0)//指定使用图片的哪一部分,相对图片左上角的像素坐标
 
   
  30:             , new soso.maps.Size(27, 35)//指定图片的原始大小
 
   
  31:             , new soso.maps.Size(-12, -30));//向左偏12px,向上偏30px
 
   
  32:     marker.setIcon(icon);
 
   
  33:     
 
   
  34:     var decor = new soso.maps.MarkerDecoration({
 
   
  35:         content: '',
 
   
  36:         margin: new soso.maps.Size(0, -4),
 
   
  37:         align: soso.maps.ALIGN.CENTER,
 
   
  38:         marker: marker
 
   
  39:     });
 
   
  40:      var path1=[
 
   
  41:         center
 
   
  42:     ];
 
   
  43:      var polyline = new soso.maps.Polyline({
 
   
  44:         path: path1,
 
   
  45:         strokeColor: '#000000',
 
   
  46:         strokeWeight: 5,
 
   
  47:         strokeOpacity: 1,
 
   
  48:         editable:false,
 
   
  49:         map: map
 
   
  50:     });
 
   
  51:     /*
 
   
  52:     soso.maps.Event.addListener(map,'zoomlevel_changed',function() {
 
   
  53:         circle.setMap(null);console.log(map);
 
   
  54:         circle.setMap(map);
 
   
  55:     });
 
   
  56:     */
 
   
  57: }
 
   
  58: window.οnlοad=init;
</script>
  24: </head>
  25: <body onload="init()">
  26: <div style="width:603px;height:300px" id="container"></div>
  27: </body>
  28: </html>

转载于:https://www.cnblogs.com/dctit/archive/2013/01/07/2850309.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值