C# sogou地图API应用总结(二)

在地图上添加自己想要的功能模块

具体代码如下

 1  var map;
 2   window.onload = function () {
 3             var myOptions = {
 4                 mapControl: false, //关闭默认的控件
 5                 mapTypeId: sogou.maps.MapTypeId.ROADMAP
 6             }
 7             map = new sogou.maps.Map(document.getElementById("map_canvas"), myOptions); //初始化地图
 8
 9
10             var homeControlDiv = document.createElement(‘DIV‘); //创建
11             homeControlDiv.style.position = "absolute";
12             homeControlDiv.style.left = "20px";
13             homeControlDiv.style.top = "5px";
14
15             var homeControl = new HomeControl(homeControlDiv, map); //获取控件
16             map.getContainer().appendChild(homeControlDiv); //将控件添加到地图上
17
18
19         }
20 function HomeControl(controlDiv, map) {
21
22             controlDiv.style.padding = ‘5px‘;
23
24             //测距功能
25             var goHomeText = document.createElement(‘DIV‘);
26             goHomeText.style.fontFamily = ‘Arial,sans-serif‘;
27             goHomeText.style.backgroundColor = ‘white‘;
28             goHomeText.style.cursor = ‘pointer‘;
29             goHomeText.style.borderStyle = ‘solid‘;
30             goHomeText.style.borderWidth = ‘1px‘;
31             goHomeText.style.borderColor = ‘black‘;
32             goHomeText.style.fontSize = ‘12px‘;
33             goHomeText.style.textAlign = ‘center‘;
34             goHomeText.style.float = ‘left‘;
35             goHomeText.style.width = "60px";
36             goHomeText.innerHTML = ‘<b>测距</b>‘;
37             controlDiv.appendChild(goHomeText);
38
39             //获取坐标
40             var SetZbText = document.createElement(‘DIV‘);
41             SetZbText.style.fontFamily = ‘Arial,sans-serif‘;
42             SetZbText.style.backgroundColor = ‘white‘;
43             SetZbText.style.cursor = ‘pointer‘;
44             SetZbText.style.borderStyle = ‘solid‘;
45             SetZbText.style.borderWidth = ‘1px‘;
46             SetZbText.style.borderColor = ‘black‘;
47             SetZbText.style.fontSize = ‘12px‘;
48             SetZbText.style.textAlign = ‘center‘;
49             SetZbText.style.float = ‘left‘;
50             SetZbText.style.width = "60px";
51             SetZbText.innerHTML = ‘<b>获取坐标</b>‘;
52             controlDiv.appendChild(SetZbText);
53
54             //清空多余描点
55             var setHomeText = document.createElement(‘DIV‘);
56             setHomeText.style.fontFamily = ‘Arial,sans-serif‘;
57             setHomeText.style.backgroundColor = ‘white‘;
58             setHomeText.style.cursor = ‘pointer‘;
59             setHomeText.style.borderStyle = ‘solid‘;
60             setHomeText.style.borderWidth = ‘1px‘;
61             setHomeText.style.borderColor = ‘black‘;
62             setHomeText.style.fontSize = ‘12px‘;
63             setHomeText.style.textAlign = ‘center‘;
64             setHomeText.style.float = ‘left‘;
65             setHomeText.style.width = "60px";
66             setHomeText.innerHTML = ‘<b>清空</b>‘;
67             controlDiv.appendChild(setHomeText);
68
69         }

代码效果为

动态为地图添加描点(可后台管理)

 1         var map;
 2         var MapZBs,Listener;
 3         var num;
 4         //获取类的唯一示例
 5         function getInstance(a) {
 6             a.hasOwnProperty("_instance") || (a._instance = new a);
 7             return a._instance
 8         }
 9         window.onload = function () {
10             var myOptions = {
11                 mapControl: false, //关闭默认的控件
12                 mapTypeId: sogou.maps.MapTypeId.ROADMAP
13             }
14             map = new sogou.maps.Map(document.getElementById("map_canvas"), myOptions); //初始化地图
15
16
17             Marks(); //动态添加描点
18         }
19         //动态添加描点
20         function Marks() {
21             //ajax动态调取后台数据
22             var marks;
23             $.ajax({
24                 type: "post",
25                 contentType: "application/json",
26                 url: "Index.aspx/GetMarks",
27                 success: function (data) {
28                     FxData(data.d);
29                 }
30             })
31         }
32         //描点内容分析
33         function FxData(Data) {
34             var array = Data.split(‘|‘);
35             var HtmlCon = "";
36             for (var j = 0; j < array.length; j++) {
37                 if (array[j].toString() != "") {
38                     var Yarr = array[j].split(‘&‘);
39                     var TypeImages;
40                     switch (Yarr[4].toString()) {
41                         case "1": TypeImages = "images/b1.png"; break;
42                         case "2": TypeImages = "images/o1.png"; break;
43                         case "3": TypeImages = "images/r1.png"; break;
44                         case "4": TypeImages = "images/z1.png"; break;
45                     }
46                     HtmlCon += ‘<li id="mark‘ + (j + 1) + ‘" class=""><h3 class="dining" style="background: url(‘ + TypeImages + ‘) no-repeat;background-size: 30px 30px;">‘ + Yarr[2] + ‘</h3><div class="priceinfo2">‘ + Yarr[3] + ‘</div></li>‘;
47                    }
48             }
49             document.getElementById(‘tmd_data‘).innerHTML = HtmlCon;
50
51             for (var i = 0; i < array.length; i++) {
52                 if (array[i].toString() != "") {
53                     var Yarr = array[i].split(‘&‘);
54                     AddMark(Yarr[0], Yarr[1], Yarr[3], Yarr[2], Yarr[4], Yarr[5], i, i);
55                 }
56             }
57         }
58         //生成描点和弹出层
59         function AddMark(location, location1,Con,Title,ImgType,Images,mark,num) {
60             var location = new sogou.maps.Point(location, location1); //描点位置
61             //var location = new sogou.maps.LatLng(location, location1);
62             var TypeImages = "";
63             switch (ImgType) {
64                 case "1": TypeImages = "images/b1.png"; break;
65                 case "2": TypeImages = "images/o1.png"; break;
66                 case "3": TypeImages = "images/r1.png"; break;
67                 case "4": TypeImages = "images/z1.png"; break;
68             }
69
70             mark = new sogou.maps.Marker({
71                 position: location,
72                 title: Title,
73                 map: map,
74                 icon: TypeImages,
75                 isFixed:true//不允许被清除
76             });
77
78             var contentString = ‘<div class="Tan"><div class="wpic"><img  src="images/‘ + Images+
79             ‘" /></div>‘ +
80             ‘<p>‘ + Con + ‘</p>‘ +
81             ‘</div>‘;
82             //创建窗体
83             var infowindow = new sogou.maps.InfoWindow({
84                 content: contentString
85             });
86             var container = document.createElement(‘div‘); //创建div
87             container.innerHTML = contentString;
88
89             var tpn = new sogou.maps.ToolPanel();
90             tpn.setPanel(container);
91             sogou.maps.event.addDomListener(mark, ‘click‘, function () {
92                 infowindow.open(map, mark);
93                 tpn.setPoint(this.getPosition());//搜索功能
94                 tpn.setCallback(function (a) { infowindow.setContent(a, 1) })
95             });
96         } 

ajax后台代码为

 1   [WebMethod]
 2         public static string GetMarks()
 3         {
 4             string str = "";
 5             DataTable dt = GetData();
 6             foreach (DataRow rows in dt.Rows)
 7             {
 8                 str += rows["PointX"].ToString() + "&" + rows["PointY"].ToString() + "&" + rows["Company"].ToString() + "&" + rows["Explain"].ToString();
 9                 str += "&" + rows["MarkType"].ToString() + "&" + rows["ComImage"].ToString() + "|";
10             }
11             return str;
12         }
13
14         private static DataTable GetData()
15         {
16             DataTable dt = new DataTable();
17             string sql = "select * from MapMark";
18             SqlConnection cnn = new SqlConnection(SqlCon);
19             using (SqlCommand cmm = new SqlCommand(sql, cnn))
20             {
21                 using (SqlDataAdapter dapter = new SqlDataAdapter(cmm))
22                 {
23                     dapter.Fill(dt);
24                 }
25             }
26             return dt;
27         }

代码效果为:

C# sogou地图API应用总结(二)

时间: 2024-08-05 11:31:04

C# sogou地图API应用总结(二)的相关文章

C# sogou地图API应用总结

地图的初始化1.添加引用地图的API文件: <script src="http://api.go2map.com/maps/js/api_v2.5.1.js" type="text/javascript"></script>2.网站初始化加载事件: window.onload = function () { var map = new sogou.maps.Map(document.getElementById("map_canva

Android应用中使用百度地图API定位自己的位置(二)

官方文档:http://developer.baidu.com/map/sdkandev-6.htm#.E7.AE.80.E4.BB.8B3 百度地图SDK为开发者们提供了如下类型的地图覆盖物: 我的位置图层(MyLocationOverlay):用于显示用户当前位置的图层(支持自定义位置图标): Poi搜索结果图层(PoiOverlay):用于显示兴趣点搜索结果的图层: 路线图层(RouteOverlay):公交.步行和驾车线路图层,将公交.步行和驾车出行方案的路线及关键点显示在地图上(起.终

【高德地图API】从零开始学高德JS API(二)地图控件与插件——测距、圆形编辑器、鼠标工具、地图类型切换、鹰眼鱼骨

摘要:无论是控件还是插件,都是在一级API接口的基础上,进行二次开发,封装的一系列更加便于开发者使用,减少开发者工作量的二级API接口.除了官方通用的鱼骨.鹰眼控件,还有大量官方开发的地图插件,类似谷歌的lib.当然本文还会介绍自定义插件的使用. ------------------------------------------------------------------------------------------------- 第一部分 控件 目前官方支持的控件包含:缩放控制条-地图

【百度地图API】建立全国银行位置查询系统(二)——怎样为地图添加控件

原文:[百度地图API]建立全国银行位置查询系统(二)--怎样为地图添加控件 <摘要>你将在第二章中学会以下知识: 使用手写代码的利器——notepad++: 如何为地图添加控件——鱼骨.鹰眼.比例尺.2D3D转换控件.版权控件. ----------------------------------------------------------------------------------------------------------------- 一.安装配置notepad++ 为什么

Android百度地图API集成二《定位》

书接上回 ↑ 基础地图请查看Android百度地图API集成一<基础地图>: 地址http://www.cnblogs.com/dhr125/p/5969980.html 1.在Application标签中声明SERVICE组件 <service android:name="com.baidu.location.f" android:enabled="true" android:process=":remote"> <

百度地图API位置偏移的校准算法

转自极客人原文 百度地图API位置偏移的校准算法 在开始使用百度地图API进行开发时可能会遇到一件相当奇怪的事情,使用百度定位的经纬度在地图上显示相当不准确,这一问题我在微信开发和安卓开始时都遇到过.第一次使用百度地图api获取位置并在地图上显示是在微信开发的时候,那是不知道具体原因无奈在微信获取的地理位置上加了一个偏移量进行校准,虽能勉强解决,但是不太准确.后来在安卓开始也同样遇到了这个问题,才发现百度地图API定位偏移已经不是一个偶然问题了. 百度地图API定位偏移的原因 以下来自互联网:

【地图API】为何您的坐标不准?如何纠偏?

原文:[地图API]为何您的坐标不准?如何纠偏? 摘要:各种坐标体系之间如何转换?到底有哪些坐标体系?什么是火星坐标?为什么我的坐标,在地图上显示会有偏移?本文详细解答以上问题.最后给出坐标拾取工具. --------------------------------------------------------------------------------------------------------------------------- 一.坐标体系 首先我们要明白,开发者能接触到哪些坐

VUE之使用百度地图API

利用vue创建点餐系统,在点餐系统中需要知道商家地址信息,这时就需要借用百度地图API. 步骤一:申请百度地图密钥: 步骤二:在index.html中添加百度地图JavaScript API接口: <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=KCzp8claYra8uYAvahElV9oKUT6j7Gx1" ></script> 步

数据视化Echarts+百度地图API实现市县区级下钻

开始 这两天公司有个页面需要做数据可视化的展示,数据视化采用的是Echarts+百度地图API做展示,需要用到县级区级下钻的一个联动效果发现网上关于Echarts做到县区级下钻的资料很少,有的话也不是很详细,对于刚接触Echarts的让人来说可能有些搞不明白,在这里我把Echarts下钻开发过程中总结的知识分享给大家,也能使自己加深印象,当然啦,对于一些在软件行业折腾了几年的老油条来说,这些都是一些非常基础的东西.但是还是希望能帮助到那些刚接触Echarts遇到类似问题需要帮助的人.如果哪里写的