sogou地图API用法实例教程
作者:shichen2014 发布时间:2024-04-16 10:30:08
标签:sogou,地图,API
本文实例讲述了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地图开发有所帮助
0
投稿
猜你喜欢
- [sql] -- ===================【创建存储过程】===================== USE [Message
- 配置说明 Linux版本:Centos7 M
- 从MySQL 5.0.2开始,通过mysql_stmt_attr_set() C API函数实现了服务器端光标。服务器端光标允许在服务器端生
- 如下所示:ffmpeg中文文档:http://linux.51yip.com/search/ffmpegffmpeg -i test_bao
- 1. ASCII 返回与指定的字符对应的十进制数; SQL> select ascii(A) A,ascii(a) a,as
- python天数转日期字符串在利用python读取Excel的时候, 日期格式的单元格读取出来是数字,该数字表示1990年01月01日到该日
- 1.简述:xlrd是读取excel表格数据;支持 xlsx和xls 格式的excel表格;三方模块安装方式:pip3 install xlr
- 1 集合集合可以使用大括号({})或者set()函数进行创建,但是创建一个空集合必须使用set()函数,而不能用{},大括号是用来创建一个空
- 看了群主最后成像的图片,应该是循环了36次画方框,每次有10度的偏移。当然不能提前看答案,自己试着写代码。之前有用过海龟画图来画过五角星、奥
- 前提:升序数组,待查元素在数组中。二分查找:就是一个递归函数c。待查元素a,当前数组中位数b,如果b=a则返回b的索引,b>a则在b左
- 下列语句部分是Mssql语句,不可以在access中使用。SQL分类:DDL—数据定义语言(CREATE,ALTER,DROP,DECLAR
- 你是一位交互设计师吗?告诉我,你具体做些什么?我是做网站设计的?听起来不够专业。我是做网页设计的,听起来……你们是做界面的……恩,好吧,我勉
- 如需安装运行环境或远程调试,可加QQ905733049, 或QQ2945218359由专业技术人员远程协助!运行结果如下:代码如下:impo
- PyMySQL介绍PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb
- 服务端经常需要返回一个列表,里面包含很多用户数据,常规做法当然是遍历然后读缓存。使用Go语言后,可以并发获取,极大提升效率。使用channe
- 新建一个项目 app02在 app02/ 下创建 urls.py:from django.conf.urls import urlfrom
- Tags# 普通for循环<ul>{% for user in user_list %} <li>{{
- 本文实例讲述了Python面向对象程序设计。分享给大家供大家参考,具体如下:示例1:#encoding:utf-8''
- 在PHP界谈模板引擎,必不可免的要拿Smarty开刀, 这个无比傻帽的却又带有一点点官方色彩的模板引擎, 如果没有我这样人富有正义感又富有创
- 1. 字符编码简介1.1. ASCIIASCII(American Standard Code for Information Interc