百度地图根据经纬度坐标值绘制轨迹.

var map = new BMap.Map("map");
var point = new BMap.Point(116.404, 39.915);
map.centerAndZoom(point, 15);
map.enableScrollWheelZoom(); // 开启鼠标滚轮缩放
map.addControl(new BMap.ScaleControl()); // 添加比例尺控件

var pointStr = "104.038748,30.641821,104.047789,30.648128,104.063959,30.655336,104.067264,30.660307,104.067264,30.664438,104.064008,30.665316".split(",");
var pointArr = [];

for (var k = 0; k < pointStr.length; k += 2) {
pointArr.push({
lng: pointStr[k],
lat: pointStr[k + 1]
});
}

// 生成坐标点
var trackPoint = [];
for (var i = 0, j = pointArr.length; i < j; i++) {
trackPoint.push(new BMap.Point(pointArr[i].lng, pointArr[i].lat));
}

map.centerAndZoom(trackPoint[0], 15);

// 画线
var polyline = new BMap.Polyline(trackPoint, {
strokeColor: "#1869AD",
strokeWeight: 3,
strokeOpacity: 1
});
map.addOverlay(polyline);

// 配置图片
var size = new BMap.Size(26, 26);
var offset = new BMap.Size(0, -13);
var imageSize = new BMap.Size(26, 26);
var icon = new BMap.Icon("./express-position.png", size, {
imageSize: imageSize
});

// 画图标
for (var i = 0, j = trackPoint.length; i < j; i++) {
var marker = new BMap.Marker(trackPoint[i], {
icon: icon,
offset: offset
}); // 创建标注
map.addOverlay(marker);

}

//根据经纬极值计算绽放级别。 (从网上复制)
function getZoom(maxLng, minLng, maxLat, minLat) {
var zoom = ["50", "100", "200", "500", "1000", "2000", "5000", "10000", "20000", "25000", "50000", "100000", "200000", "500000", "1000000", "2000000"]; // 级别18到3。
var pointA = new BMap.Point(maxLng, maxLat); // 创建点坐标A
var pointB = new BMap.Point(minLng, minLat); // 创建点坐标B
var distance = map.getDistance(pointA, pointB).toFixed(1); //获取两点距离,保留小数点后两位
for (var i = 0, zoomLen = zoom.length; i < zoomLen; i++) {
if (zoom[i] - distance > 0) {
return 18 - i + 3; //之所以会多3,是因为地图范围常常是比例尺距离的10倍以上。所以级别会增加3。
}
}
}

// (从网上复制)
function setZoom(points) {
if (points.length > (http://www.amjmh.com/v/BIBRGZ_558768/)0) {
var maxLng = points[0].lng;
var minLng = points[0].lng;
var maxLat = points[0].lat;
var minLat = points[0].lat;
var res;
for (var i = points.length - 1; i >= 0; i--) {
res = points[i];
if (res.lng > maxLng) maxLng = res.lng;
if (res.lng < minLng) minLng = res.lng;
if (res.lat > maxLat) maxLat = res.lat;
if (res.lat < minLat) minLat = res.lat;
}
var cenLng = (parseFloat(maxLng) + parseFloat(minLng)) / 2;
var cenLat = (parseFloat(maxLat) + parseFloat(minLat)) / 2;
var zoom = getZoom(maxLng, minLng, maxLat, minLat);
map.centerAndZoom(new BMap.Point(cenLng, cenLat), zoom);
} else {
//没有坐标,显示全中国
map.centerAndZoom(new BMap.Point(103.388611, 35.563611), 5);
}
}

setZoom(pointArr)

原文地址:https://www.cnblogs.com/ly570/p/11488509.html

时间: 2024-10-30 04:28:44

百度地图根据经纬度坐标值绘制轨迹.的相关文章

全球78707个主要城市数据库,包含经纬度坐标值、国家、省份

全世界78707个主要城市信息MYSQL数据库,包含经纬度坐标值,已经导出成了SQL文件,因为比较大,有10M,所以这里单独导出来,供升级失败的同学手工导入,如图: 这个数据主要是用于天气预报插件的,天气预报插件,需要首先从这个库里面,查询城市的ID,在把ID传给接口,返回天气预报数据. 下载请到 :http://blog.erdaicms.com

全球78707个主要城市信息MYSQL数据库,包含经纬度坐标值

全世界78707个主要城市信息MYSQL数据库,包含经纬度坐标值,已经导出成了SQL文件,因为比较大,有10M,所以这里单独导出来,供升级失败的同学手工导入,如图: 这个数据主要是用于天气预报插件的,天气预报插件,需要首先从这个库里面,查询城市的ID,在把ID传给接口,返回天气预报数据. 这里上传不了附件,下载请去官方博客:http://blog.erdaicms.com/lvyou/97

Google地图百度地图GPS经纬度偏移转换(JAVA)

不多说,直接代码,Java版 主要就是Google地图,百度地图,GPS经纬度偏移转换 GCJ-02转换BD-09,Google地图经纬度转百度地图经纬度 BD-09转换GCJ-02,百度转google WGS-84 到 GCJ-02 的转换(即 GPS 加偏) /** * 用于构造地图中的坐标点 * @author lw * **/ public class Point { private double lat;// 纬度 private double lng;// 经度 public Poi

微信小程序自动定位,通过百度地图根据经纬度获取该地点所在城市信息

微信小程序获得经纬度 var that = this wx.getLocation({ type: 'wgs84', success(res) { console.log(res) that.setData({ latitude: res.latitude, longitude: res.longitude }) } }) 百度地图api 'https://api.map.baidu.com/geocoder/v2/?location=' + res.latitude+',' + res.lon

76百度地图:经纬度

很多场合都用到百度地图,这里是笔者把自己老家县政府的位置(经纬度)和老家住宅的位置(经纬度)在百度地图上标出来.```html:run<html><head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="viewport" content="initial-scale=1.0,

关于百度地图根据经纬度获取城市信息的接口

1.首先登录百度地图开放平台,可以直接用百度账号,如果没有就申请一下: 2.登录之后,右上角有一个API控制台,点进去: 3.创建应用,填写应用名称,选择类型和服务,ip白名单可以填写0.0.0.0/0: 4.应用列表里面就会看到对应的ak: 5.http://api.map.baidu.com/geocoder/v2/?ak=AAAAA&location=BBBBB&output=json&pois=1 AAAAA为的ak BBBBB为lat,lng 中间用,隔开. 返回的jso

使用百度地图将经纬度转换成具体位置

1.申请百度地图的key: AK http://lbsyun.baidu.com/apiconsole/key http://lbsyun.baidu.com/apiconsole/key/create 最早的百度地图是不需要的这些流程的.但现在百度牛逼了.不申请或审核不通过不给用咯,配置请不要吝啬,全部勾选即可 2.找到开发文档 我们使用的的API叫做 [坐标逆转换],也叫[逆/地址解析] http://lbsyun.baidu.com/index.php?title=jspopular/gu

百度地图获取经纬度

var longtitude = 0;var latitude = 0;function GetPostion() {                   //通过百度获取经纬度            var address = "具体的地理位置 ";                         var url = "http://api.map.baidu.com/geocoder/v2/?address=" + address + "&ou

百度地图根据经纬度

var map = new BMap.Map("map"); var point = new BMap.Point(116.404, 39.915); map.centerAndZoom(point, 15); map.enableScrollWheelZoom(); // 开启鼠标滚轮缩放 map.addControl(new BMap.ScaleControl()); // 添加比例尺控件 var pointStr = "104.038748,30.641821,104.