C# sogou地图API应用总结(二)
在地图上添加自己想要的功能模块
具体代码如下
var map;
window.onload = function () {
var myOptions = {
mapControl: false, //关闭默认的控件
mapTypeId: sogou.maps.MapTypeId.ROADMAP
}
map = new sogou.maps.Map(document.getElementById("map_canvas"), myOptions); //初始化地图 var homeControlDiv = document.createElement('DIV'); //创建
homeControlDiv.style.position = "absolute";
homeControlDiv.style.left = "20px";
homeControlDiv.style.top = "5px"; var homeControl = new HomeControl(homeControlDiv, map); //获取控件
map.getContainer().appendChild(homeControlDiv); //将控件添加到地图上 }
function HomeControl(controlDiv, map) { controlDiv.style.padding = '5px'; //测距功能
var goHomeText = document.createElement('DIV');
goHomeText.style.fontFamily = 'Arial,sans-serif';
goHomeText.style.backgroundColor = 'white';
goHomeText.style.cursor = 'pointer';
goHomeText.style.borderStyle = 'solid';
goHomeText.style.borderWidth = '1px';
goHomeText.style.borderColor = 'black';
goHomeText.style.fontSize = '12px';
goHomeText.style.textAlign = 'center';
goHomeText.style.float = 'left';
goHomeText.style.width = "60px";
goHomeText.innerHTML = '<b>测距</b>';
controlDiv.appendChild(goHomeText); //获取坐标
var SetZbText = document.createElement('DIV');
SetZbText.style.fontFamily = 'Arial,sans-serif';
SetZbText.style.backgroundColor = 'white';
SetZbText.style.cursor = 'pointer';
SetZbText.style.borderStyle = 'solid';
SetZbText.style.borderWidth = '1px';
SetZbText.style.borderColor = 'black';
SetZbText.style.fontSize = '12px';
SetZbText.style.textAlign = 'center';
SetZbText.style.float = 'left';
SetZbText.style.width = "60px";
SetZbText.innerHTML = '<b>获取坐标</b>';
controlDiv.appendChild(SetZbText); //清空多余描点
var setHomeText = document.createElement('DIV');
setHomeText.style.fontFamily = 'Arial,sans-serif';
setHomeText.style.backgroundColor = 'white';
setHomeText.style.cursor = 'pointer';
setHomeText.style.borderStyle = 'solid';
setHomeText.style.borderWidth = '1px';
setHomeText.style.borderColor = 'black';
setHomeText.style.fontSize = '12px';
setHomeText.style.textAlign = 'center';
setHomeText.style.float = 'left';
setHomeText.style.width = "60px";
setHomeText.innerHTML = '<b>清空</b>';
controlDiv.appendChild(setHomeText); }
代码效果为
动态为地图添加描点(可后台管理)
var map;
var MapZBs,Listener;
var num;
//获取类的唯一示例
function getInstance(a) {
a.hasOwnProperty("_instance") || (a._instance = new a);
return a._instance
}
window.onload = function () {
var myOptions = {
mapControl: false, //关闭默认的控件
mapTypeId: sogou.maps.MapTypeId.ROADMAP
}
map = new sogou.maps.Map(document.getElementById("map_canvas"), myOptions); //初始化地图 Marks(); //动态添加描点
}
//动态添加描点
function Marks() {
//ajax动态调取后台数据
var marks;
$.ajax({
type: "post",
contentType: "application/json",
url: "Index.aspx/GetMarks",
success: function (data) {
FxData(data.d);
}
})
}
//描点内容分析
function FxData(Data) {
var array = Data.split('|');
var HtmlCon = "";
for (var j = ; j < array.length; j++) {
if (array[j].toString() != "") {
var Yarr = array[j].split('&');
var TypeImages;
switch (Yarr[].toString()) {
case "": TypeImages = "images/b1.png"; break;
case "": TypeImages = "images/o1.png"; break;
case "": TypeImages = "images/r1.png"; break;
case "": TypeImages = "images/z1.png"; break;
}
HtmlCon += '<li id="mark' + (j + ) + '" class=""><h3 class="dining" style="background: url(' + TypeImages + ') no-repeat;background-size: 30px 30px;">' + Yarr[] + '</h3><div class="priceinfo2">' + Yarr[] + '</div></li>';
}
}
document.getElementById('tmd_data').innerHTML = HtmlCon; for (var i = ; i < array.length; i++) {
if (array[i].toString() != "") {
var Yarr = array[i].split('&');
AddMark(Yarr[], Yarr[], Yarr[], Yarr[], Yarr[], Yarr[], i, i);
}
}
}
//生成描点和弹出层
function AddMark(location, location1,Con,Title,ImgType,Images,mark,num) {
var location = new sogou.maps.Point(location, location1); //描点位置
//var location = new sogou.maps.LatLng(location, location1);
var TypeImages = "";
switch (ImgType) {
case "": TypeImages = "images/b1.png"; break;
case "": TypeImages = "images/o1.png"; break;
case "": TypeImages = "images/r1.png"; break;
case "": TypeImages = "images/z1.png"; break;
} mark = new sogou.maps.Marker({
position: location,
title: Title,
map: map,
icon: TypeImages,
isFixed:true//不允许被清除
}); var contentString = '<div class="Tan"><div class="wpic"><img src="data:images/' + Images+
'" /></div>' +
'<p>' + Con + '</p>' +
'</div>';
//创建窗体
var infowindow = new sogou.maps.InfoWindow({
content: contentString
});
var container = document.createElement('div'); //创建div
container.innerHTML = contentString; var tpn = new sogou.maps.ToolPanel();
tpn.setPanel(container);
sogou.maps.event.addDomListener(mark, 'click', function () {
infowindow.open(map, mark);
tpn.setPoint(this.getPosition());//搜索功能
tpn.setCallback(function (a) { infowindow.setContent(a, ) })
});
}
ajax后台代码为
[WebMethod]
public static string GetMarks()
{
string str = "";
DataTable dt = GetData();
foreach (DataRow rows in dt.Rows)
{
str += rows["PointX"].ToString() + "&" + rows["PointY"].ToString() + "&" + rows["Company"].ToString() + "&" + rows["Explain"].ToString();
str += "&" + rows["MarkType"].ToString() + "&" + rows["ComImage"].ToString() + "|";
}
return str;
} private static DataTable GetData()
{
DataTable dt = new DataTable();
string sql = "select * from MapMark";
SqlConnection cnn = new SqlConnection(SqlCon);
using (SqlCommand cmm = new SqlCommand(sql, cnn))
{
using (SqlDataAdapter dapter = new SqlDataAdapter(cmm))
{
dapter.Fill(dt);
}
}
return dt;
}
代码效果为:
C# sogou地图API应用总结(二)的更多相关文章
- C# sogou地图API应用总结
地图的初始化1.添加引用地图的API文件: <script src="http://api.go2map.com/maps/js/api_v2.5.1.js" type=&q ...
- 【高德地图API】从零开始学高德JS API(二)地图控件与插件——测距、圆形编辑器、鼠标工具、地图类型切换、鹰眼鱼骨
原文:[高德地图API]从零开始学高德JS API(二)地图控件与插件——测距.圆形编辑器.鼠标工具.地图类型切换.鹰眼鱼骨 摘要:无论是控件还是插件,都是在一级API接口的基础上,进行二次开发,封装 ...
- 【百度地图API】建立全国银行位置查询系统(二)——怎样为地图添加控件
原文:[百度地图API]建立全国银行位置查询系统(二)--怎样为地图添加控件 <摘要>你将在第二章中学会以下知识: 使用手写代码的利器——notepad++: 如何为地图添加控件——鱼骨. ...
- 百度地图开发者API学习笔记二
一,地图上多个覆盖物(Marker). 当有多个覆盖物时,我们需要获取每个点的信息.如下图,每个Marker的经度都不相同 二,代码: <!DOCTYPE html> <html&g ...
- 百度地图API二:根据标注点坐标范围计算显示缩放级别zoom自适应显示地图
原文:百度地图API二:根据标注点坐标范围计算显示缩放级别zoom自适应显示地图 版权声明:本文为博主原创文章,转载请注明出处. https://blog.csdn.net/liusaint1992/ ...
- Java web与web gis学习笔记(二)——百度地图API调用
系列链接: Java web与web gis学习笔记(一)--Tomcat环境搭建 Java web与web gis学习笔记(二)--百度地图API调用 JavaWeb和WebGIS学习笔记(三)-- ...
- 【地图功能开发系列:二】根据地址名称通过百度地图API查询出坐标
根据地址名称通过百度地图API查询出坐标 百度地图ApiUrl string url = "http://api.map.baidu.com/geocoder?address={0}& ...
- [转] 一个程序猿眼中的国内主流地图api
在网站或者手机应用中,经常用到地图api.在现在这么激烈的竞争下,各地图服务提供的服务基本都趋于一致了.一个公司推出的新服务,其他公司肯定也会很快的跟进.这样,对于开发者来说,地图api的选择就主要参 ...
- 【高德地图API】如何解决坐标转换,坐标偏移?
http://bbs.amap.com/thread-18617-1-1.html#rd?sukey=cbbc36a2500a2e6c2b0b19115118ace519002ff3a52731f13 ...
随机推荐
- cat命令的作用
1.显示文件内容,如more的功能. 使用方法: cat filename. 注:cat,无论文件多长,一次性全部显示:more,一次只显示一个屏幕高度的内容. 2.创建文件,如touch功能. 使 ...
- gcc: error trying to exec 'cc1plus': execvp: no such file or directory
最近在安装OpenCV cmake的时,出现gcc: error trying to exec 'cc1plus': execvp: no such file or directory的错误. 导致问 ...
- ORA-01034: 、ORA-01078: 和 LRM-00109: 的解决方法
环境:Linux 5.4 Oracle 11.2.0.3 在Linux上连接Oracle时遇到报错: SQL> show parameter sgaORA-01034: ORACLE not a ...
- ReactNative学习-滑动查看图片第三方组件react-native-swiper
滑动查看图片第三方组件:react-native-swiper,现在的版本为:1.4.3,该版本还不支持Android. 下面介绍的是该组件的一些用法,可能总结的不完整,希望大家一起来共同完善. 官方 ...
- jQuery中的渐变动画效果
jQuery中的渐变动画效果jQuery中的渐变动画效果
- FreeBSD 路由详解
在同一个局域网上的计算机是直接连通的,但是不同的网络上的计算机并没有直接相连,只能通过一台特殊的专用计算机 -路由器来完成连通.路由器连接有多个网络界面,每一个网络界面连接到一个相应的网络上,具有一个 ...
- 何为 ISAPI
ISAPI即为Internet Server Application Programming Interface ISAPI 服务器扩展 ISAPI 服务器扩展是可以被 HTTP 服务器加载和调用的 ...
- java使用POI jar包读写xls文件
主要使用poi jar来操作excel文件.代码中用到的数据库表信息见ORACLE之表.使用public ArrayList<Person> getPersonAllRecords()获得 ...
- Sql Server 数据库之间如何进行跨网远程连接访问
场景说明 现在有一台A电脑和一台B电脑,两台电脑都安装了Sql Server数据库,两台电脑不在一个局域网(我们考虑的是不同网络的两台数据库连接),比如A电脑在公司,B电脑在家里,现在我要在家里用B电 ...
- Iframe跨域_ASP.NET
1.描述: A系统 需要 调用 B系统的页面,被调用的B系统的页面b.html内部嵌套了iframe框架c.aspx地址页 2.问题呈现: ie浏览器下 Chrome浏览器下 追踪 3.问题原因: X ...