android 调用搜狗地图api,sogou地图API用法实例教程

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

地图的初始化

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

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

window.onload = function () {

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

}

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

具体代码如下

html {height: auto;}

body {height: auto;margin: 0;padding: 0;}

#map_canvas {width:1000px;height: 500px;position: absolute;}

@media print {#map_canvas {height: 950px;}}

window.onload = function () {

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

}

指定显示莫城市地图

关键代码如下:

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 {height: auto;}

body {height: auto;margin: 0;padding: 0;}

#map_canvas {width:1000px;height: 500px;position: absolute;}

@media print {#map_canvas {height: 950px;}}

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)

}

地图描点属性

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

搜狗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 {height: auto;}

body {height: auto;margin: 0;padding: 0;}

#map_canvas {width:1000px;height: 500px;position: absolute;}

@media print {#map_canvas {height: 950px;}}

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();

}

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值