sogou地图API用法实例教程

作者:shichen2014 时间:2024-04-16 10:30:08 

本文实例讲述了sogou地图API应用,是非常实用的技巧。分享给大家供大家参考。具体实现方法如下:

地图的初始化

1、添加引用地图的API文件:

<script src="http://xiazai.aspxhome.com/201409/other/api_v2.5.1.js" type="text/javascript"></script>

2、网站初始化加载事件:

window.onload = function () { var map = new sogou.maps.Map(document.getElementById("map_canvas"), {});}

创建一个id为map_canvas的div,自定义div样式,网站运行时地图自动加载;

具体代码如下

<html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"> <title></title> <style type="text/css">html {height: auto;}body {height: auto;margin: 0;padding: 0;}#map_canvas {width:1000px;height: 500px;position: absolute;}@media print {#map_canvas {height: 950px;}}</style><script src="http://xiazai.aspxhome.com/201409/other/api_v2.5.1.js" type="text/javascript"></script><script>window.onload = function () { var map = new sogou.maps.Map(document.getElementById("map_canvas"), {});}</script></head><body> <form id="form1" runat="server"> <div id="map_canvas"></div> </form></body></html>

指定显示莫城市地图

关键代码如下:

window.onload = function () { var myOptions = { zoom: 10,center: new sogou.maps.Point(12956000, 4824875) };//城市坐标,本坐标为北京坐标var map = new sogou.maps.Map(document.getElementById("map_canvas"), myOptions); }

地图属性了解

列举一下常用的一些属性比如:地图的移动、地图类型转换、跳转到指定城市

具体代码如下

<html xmlns="http://www.w3.org/1999/xhtml"><head id="Head1" runat="server"> <title></title> <style type="text/css">html {height: auto;}body {height: auto;margin: 0;padding: 0;}#map_canvas {width:1000px;height: 500px;position: absolute;}@media print {#map_canvas {height: 950px;}}</style><script src="http://xiazai.aspxhome.com/201409/other/api_v2.5.1.js" type="text/javascript"></script><script>var map;//创建全局变量window.onload = function () {  var myOptions = { zoom: 10, center: new sogou.maps.Point(12956000, 4824875) };//指定城市 map = new sogou.maps.Map(document.getElementById("map_canvas"), myOptions);//创建地图 }//setMapTypeId方法示例function setMapTypeId(num) {  //设置地图类型,如: //sogou.maps.MapTypeId.ROADMAP 普通地图 //sogou.maps.MapTypeId.SATELLITE 卫星地图 //sogou.maps.MapTypeId.HYBRID 卫星和路网混合地图 //map.setMapTypeId(sogou.maps.MapTypeId.HYBRID) switch (num) { case 1: map.setMapTypeId(sogou.maps.MapTypeId.ROADMAP); break; //普通地图 case 2: map.setMapTypeId(sogou.maps.MapTypeId.SATELLITE); break; //卫星地图 case 3: map.setMapTypeId(sogou.maps.MapTypeId.HYBRID); break; //卫星和路网混合地图 }}//panBy方法示例地图手动移动function panBy(a, b) { map.panBy(a, b)}//setOptions方法示例显示指定地区function setOptions() { //同时设置地图中心、级别、类型 map.setOptions({ center: new sogou.maps.Point(13522000, 3641093), zoom: 12, mapTypeId: sogou.maps.MapTypeId.ROADMAP })}//setCenter方法示例 显示指定的地区 a、b为地图坐标,C为地图级别function setCenter(a, b, c) { map.setCenter(new sogou.maps.Point(a, b), c)}//fitBounds方法示例 跳转到指定的范围内function fitBounds() { //设置一个故宫附近的范围 var bounds = new sogou.maps.Bounds(12955101, 4824738, 12958355, 4827449); //将地图设置为可全部显示这个范围 //注:不是设置bounds为这个值,而是调整到合适的位置 map.fitBounds(bounds)}</script></head><body> <form id="form1" runat="server"> <input value="普通地图" onclick="setMapTypeId(1)" type="button"/> <input value="卫星地图" onclick="setMapTypeId(2)" type="button"/> <input value="卫星和路网混合地图" onclick="setMapTypeId(3)" type="button"/> <input value="向左移动" onclick="panBy(200,0)" type="button"/> <input value="向右移动" onclick="panBy(-200,0)" type="button"/> <input value="向上移动" onclick="panBy(0,200)" type="button"/> <input value="向下移动" onclick="panBy(0,-200)" type="button"/> <input value="向左上移动" onclick="panBy(200,200)" type="button"/>  <input value="上海" onclick="setOptions()" type="button"/> <input value="天津" onclick="setCenter(13046000,4714250,10)" type="button"/>  <input value="故宫" onclick="fitBounds()" type="button"/> <div id="map_canvas" ></div> </form></body></html>

地图描点属性

地图上很重要的属性,给地图添加描点,是常用的方法属性,

搜狗API提供两种描点填写形式默认描点和动态添加描点

默认描点添加:

var location = new sogou.maps.Point(12956000, 4824875); //指定描点位置var map = new sogou.maps.Map(document.getElementById("map_canvas"), {});//初始化地图var marker = new sogou.maps.Marker({ position: location,//描点坐标 title: "描点",//描点名称 label: { visible: true, align: "BOTTOM" },//描点显示形式 map: map,  });//添加描点到地图

动态描点添加

window.onload = function () { //初始化地图 map = new sogou.maps.Map(document.getElementById("map_canvas"), {});//为地图添加点击事件sogou.maps.event.addListener(map, 'click', function (event) { var marker1 = new sogou.maps.Marker({ position: event.point,  map: map }); }); }

根据两描点测距

//获取类的唯一示例function getInstance(a) { a.hasOwnProperty("_instance") || (a._instance = new a); return a._instance}//两点相连function Lines(myLatlng, myPoint) {  var convertor = getInstance(sogou.maps.Convertor); var distance = convertor.distance(myLatlng, myPoint); //两点链接 var line = new sogou.maps.Polyline({ path: [myLatlng, myPoint], strokeColor: "#FF0000", strokeOpacity: 1.0, strokeWeight: 1, title: parseInt(distance) + "米", map: map }); }

根据上述属性做了一个小的模块,地图上动态测距代码如下:

<html xmlns="http://www.w3.org/1999/xhtml"><head id="Head1" runat="server"> <title></title> <style type="text/css">html {height: auto;}body {height: auto;margin: 0;padding: 0;}#map_canvas {width:1000px;height: 500px;position: absolute;}@media print {#map_canvas {height: 950px;}}</style> <script src="http://xiazai.aspxhome.com/201409/other/api_v2.5.1.js" type="text/javascript"></script> <script>  var map;var num;var Listener;  //获取类的唯一示例  function getInstance(a) {   a.hasOwnProperty("_instance") || (a._instance = new a);   return a._instance  }  window.onload = function () {   //初始化地图   map = new sogou.maps.Map(document.getElementById("map_canvas"), {});   }  function AddCj() {   var mypointh; var myPoint;   num = 0;   //为地图添加点击事件、点击后显示当前坐标并添加点击描点   Listener = sogou.maps.event.addListener(map, 'click', function (event) {    if (num == 0) {     mypointh = myPoint = event.point; //获取点击位置的坐标     }    else {     myPoint = mypointh;     mypointh = event.point; //获取点击位置的坐标     }    Lines(mypointh, myPoint);    num++;   });  }  function DelCj() {   sogou.maps.event.removeListener(Listener)  }//两点相连  function Lines(myLatlng, myPoint) {    var convertor = getInstance(sogou.maps.Convertor);   var distance = convertor.distance(myLatlng, myPoint);   //两点链接   var line = new sogou.maps.Polyline({    path: [myLatlng, myPoint],    strokeColor: "#FF0000",    strokeOpacity: 1.0,    strokeWeight: 1,    title: parseInt(distance) + "米",    map: map   });   placeMarker(myLatlng, parseInt(distance));  }  //动态添加描点,根据指定的坐标创建描点  function placeMarker(location,jl) {   var clickedLocation = location;   var marker1 = new sogou.maps.Marker({    position: location,    title: jl+"米",    label:{visible:true,align:"BOTTOM"},    map: map   });  }  function Mapclear() {   num = 0;   map.clearAll();  } </script></head><body> <form id="form1" runat="server"> <input type="button" value="测距" onclick="AddCj()" /> <input type="button" value="取消测距" onclick="DelCj()" /> <input type="button" value="清空" onclick="Mapclear()" />  <div id="map_canvas" ></div> </form></body></html>

希望本文所述对大家的sogou地图开发有所帮助

标签:sogou,地图,API
0
投稿

猜你喜欢

  • 使用Python检测文章抄袭及去重算法原理解析

    2023-04-26 12:00:54
  • String.indexOf 方法介绍

    2013-06-01 20:22:27
  • 分享python 写 csv 文件的两种方法

    2023-04-07 07:03:47
  • Keras神经网络efficientnet模型搭建yolov3目标检测平台

    2021-10-08 11:45:33
  • vue @click @tap重叠事件区分方式

    2024-05-10 14:10:04
  • java 截取字符串(判断汉字)

    2023-06-29 23:38:19
  • sql 随机抽取几条数据的方法 推荐

    2024-01-29 09:15:32
  • 关于antd-vue a-menu菜单绑定路由的相关问题

    2023-07-02 16:33:12
  • javascript 实现的完全兼容鼠标滚轴缩放图片的代码

    2024-04-10 16:09:43
  • 使用python怎样产生10个不同的随机数

    2021-08-12 13:07:18
  • python实现从ftp上下载文件的实例方法

    2021-04-24 16:37:02
  • python pyinstaller打包exe报错的解决方法

    2022-05-11 20:39:40
  • php打印输出棋盘的实现方法

    2023-10-09 04:38:10
  • asp 删除数据并同时删除图片的代码

    2011-02-28 10:39:00
  • mysql installer community 5.7.16安装详细教程

    2024-01-17 04:55:04
  • Python2.7+pytesser实现简单验证码的识别方法

    2022-01-18 02:37:33
  • 快速实现基于Python的微信聊天机器人示例代码

    2022-05-30 19:22:50
  • Go编译原理之函数内联

    2024-05-22 10:12:38
  • Python读取mat文件,并保存为pickle格式的方法

    2023-02-15 19:34:41
  • Python 图片转数组,二进制互转操作

    2023-10-07 17:46:04
  • asp之家 网络编程 m.aspxhome.com