百度地图坐标采集方法

合集下载

网页中调用百度地图的方法及模板

网页中调用百度地图的方法及模板

网页中调用百度电子地图的方法及代码模板大家先看一下效果:下面介绍方法:1、首先打开百度地图的坐标拾取网页 /lbsapi/getpoint/index.html ,找到你标注的地点的坐标,复制下来。

2、调用下面的代码,将其中的红色部分改为你复制的坐标,注意有两处要改,下面一处经度和纬度之间是“|”不是逗号。

3、将蓝色部分的信息改为你要显示的信息。

4、其中“(point,15)”是改默认打开尺寸的代码详细解释为:百度地图自身有17个级别,如下:1.{"20m","50m","100m","200m","500m","1km","2km","5km","10km","20km","25km","50km","100km","200km","500km","1000km","2000km"}但是,提供的开发包只支持16个级别,Level: 18~3, 比例尺如下:1.{"50m","100m","200m","500m","1km","2km","5km","10km","20km","25km","50km","100km","200km","500km","1000km","2000km"}模板中point级别为15 即默认放大倍数为500m,如果你想更改为默认放大到10km,把粉色部分15改为11即可。

如何下载百度地图中的矢量POI兴趣点

如何下载百度地图中的矢量POI兴趣点

如何下载百度地图中的矢量POI兴趣点1.概述水经注软件除了可以轻松下载无水印GoogleEarth卫星影像、有明确拍摄日期的历史影像、地方高清天地图、百度高德大字体打印地图,且可按1万/5千等国家标准图幅下载,可对百度坐标与火星坐标进行纠偏和切片;可下载陆地及海洋高程、STRM高程、提取10米等高线等深线、CASS高程点;可下载含高度的全国建筑楼块、全国乡镇及街区行政区划、地名点、高速铁路网、公交路线和水系等矢量数据外,还可以下载百度矢量POI兴趣点。

2.什么是POI兴趣点POI是“Point of Interest”的缩写,中文可以翻译为“兴趣点”。

在地理信息系统中,一个POI可以是一栋房子、一个商铺、一个邮筒、一个公交站等。

传统的地理信息采集方法需要地图测绘人员采用精密的测绘仪器去获取一个兴趣点的经纬度,然后再标记下来。

正因为POI的采集是一个非常费时费事的工作,对一个地理信息系统来说,POI的数量在一定程度代表着整个系统的价值。

每个POI包含四方面信息,名称、类别、经度、纬度,全面的POI讯息是丰富导航地图的必备资讯,及时的POI兴趣点能提醒用户路况的分支及周边建筑的详尽信息,也能方便导航中查到你所需要的各个地方,选择最为便捷和通畅的道路来进行路径规划,因此,导航地图POI多少状况直接影响到导航的好用程度。

3.如何下载百度地图矢量POI兴趣点这里,我们以下载成都一环路以内的餐饮POI兴趣点为例,说明如何下载百度地图中的矢量POI兴趣点。

在“地图类型”主菜单中选择“百度地图”,如下图所示。

选择百度地图在“下载”菜单中可以通过框选范围下载、多边形范围下载、沿线下载、批量下载、导入范围下载和按屏幕范围下载等多种方式确定下载范围,这里以选择“框选范围下载”为例,如下图所示。

框选下载范围在框选的目标范围中双击,会显示“新建任务”对话框,然后在该对话框中选择“POI 兴趣点”,如下图所示。

新建任务在“新建任务”对话框中,可以为下载的数据设置坐标投影,如WGS84经纬度投影、WGS84 Web 墨卡托投影、WGS84 UTM投影、北京54高斯投影、西安80高斯投影、CGCS2000高斯投影、GCJ02经纬度投影、GCJ02 Web 墨卡托投影、BD09经纬度投影和BD09 Web 墨卡托投影等。

各种国内地图坐标系总结

各种国内地图坐标系总结

各种国内地图坐标系总结⼀、国内的常⽤坐标系1、WGS-84坐标系:地⼼坐标系,GPS原始坐标体系在中国,任何⼀个地图产品都不允许使⽤GPS坐标,据说是为了保密。

2、GCJ-02 坐标系:国测局坐标,⽕星坐标系1)国测局02年发布的坐标体系,它是⼀种对经纬度数据的加密算法,即加⼊随机的偏差。

2)互联⽹地图在国内必须⾄少使⽤GCJ-02进⾏⾸次加密,不允许直接使⽤WGS-84坐标下的地理数据,同时任何坐标系均不可转换为WGS-84坐标。

3)是国内最⼴泛使⽤的坐标体系,⾼德、腾讯、Google中国地图都使⽤它。

3、CGCS2000坐标系:国家⼤地坐标系该坐标系是通过中国GPS 连续运⾏基准站、空间⼤地控制⽹以及天⽂⼤地⽹与空间地⽹联合平差建⽴的地⼼⼤地坐标系统。

4、BD-09坐标系百度中国地图所采⽤的坐标系,由GCJ-02进⾏进⼀步的偏移算法得到。

5、搜狗坐标系搜狗地图所采⽤的坐标系,由GCJ-02进⾏进⼀步的偏移算法得到。

6、图吧坐标系图吧地图所采⽤的坐标系,由GCJ-02进⾏进⼀步的偏移算法得到。

⼆、国内地图软件所采⽤的坐标系简介1、百度地图1)境内(包括港澳台):BD09a、在GCJ-02坐标系基础上再次加密b、⽀持WGS-84、GCJ-02转换成BD09,反向不⽀持,并且批量转换⼀次有条数限制2)境外:WGS-842、⾼德地图:1)境内:GCJ-02a、WGS-84——>GCJ-02(⾼德有接⼝提供,反过来没有)2)境外:暂不⽀持3)AMap 就是⾼德地图,是⾼德地图在纳斯达克上市⽤的名字,主要⾯向互联⽹企业或个⼈提供免费API服务4)MapABC 是⾼德集团底下的图盟公司,主要⾯向⼤众型企业或政府机关,并提供付费的有偿服务5)Amap和MapABC,数据和服务都是共享的,所以Mapabc⽤Amap的API是正常的3、google地图1)境内:GCJ-02a、数据来源于⾼德,两者互通2)境外:WGS-844、天地图全球统⼀:CGCS20005、腾讯地图:soso地图境内:GCJ026、微软bing地图:BingMap全球统⼀:WGS-847、搜狗地图境内:搜狗坐标系a、在GCJ-02坐标系基础上再次加密b、⽀持WGS-84、GCJ-02、BD09转换成搜狗坐标,反向不⽀持8、图吧地图: MapBar境内:图吧坐标系a、在GCJ-02坐标系基础上再次加密9、阿⾥云地图境内:GCJ-0210、灵图地图:51ditu境内:GCJ-02三、各个坐标系之间的转换1、以下代码,提供的转换算法如下:1)WGS-84 ——> GCJ022)GCJ02 ——> WGS-843)GCJ02 ——> BD094)BD09 ——> GCJ025)BD09 ——> WGS-841. package com.xy;2.3. /**4. * 各地图API坐标系统⽐较与转换;5. * WGS84坐标系:即地球坐标系,国际上通⽤的坐标系。

几种获取当前地理位置信息的方法

几种获取当前地理位置信息的方法

⼏种获取当前地理位置信息的⽅法1.html5 ⾃带获取当前地理位置信息//获取当前经纬度 IOS 10 获取定位信息只⽀持https 请求所以以下⽅法不适⽤// navigator.geolocation.getCurrentPosition( // 该函数有如下三个参数// function (pos) { // 如果成果则执⾏该回调函数// la = pos.coords.longitude;// lg = titude;// console.log(pos.coords.longitude);// console.log(titude);// //alert(// // ' 经度:' + titude +// // ' 纬度:' + pos.coords.longitude +// // ' ⾼度:' + pos.coords.altitude +// // ' 精确度(经纬):' + pos.coords.accuracy +// // ' 精确度(⾼度):' + pos.coords.altitudeAccuracy +// // ' 速度:' + pos.coords.speed// //);// }, function (err) { // 如果失败则执⾏该回调函数// alert(err.message);// }, { // 附带参数// enableHighAccuracy: true, // 提⾼精度(耗费资源)// timeout: 5000, // 超过timeout则调⽤失败的回调函数// maximumAge: 1000 // 获取到的地理信息的有效期,超过有效期则重新获取⼀次位置信息// });2.腾讯地图获取当前地理位置信息//填⼊⾃⼰在腾讯地图开放平台申请的KEYvar geolocation = new qq.maps.Geolocation(" JU6BZ-AY2R5-JF5IN-QJAVP-CSM6H-AKFNP", "MyMap");var options = { timeout: 8000 };geolocation.getLocation(sucCallback, errCallback, options);//成功的回调返回的是⽕星坐标function sucCallback(position) {var mapInfo = JSON.stringify(position, null, 4);var jsonMapInfo = eval('(' + mapInfo + ')');success(jsonMapInfo.lng, t);}//失败的回调function errCallback() {geolocation.getLocation(sucCallback, errCallback, options);}//业务逻辑function success(la, lg) {//拿到经纬度的业务逻辑...}3.⽕星坐标转百度坐标需引⽤百度地图js//jsonMapInfo 为要转换的点var gpsPoint = new BMap.Point(jsonMapInfo.lng, t);console.log("转换之前的点" + t +","+gpsPoint.lng);BMap.Convertor.translate(gpsPoint, 2, function (point) {console.log("转换之后的点" + t + "," + point.lng);})4.百度地图获取当前位置信息并导航到⽬标点var geolocation = new BMap.Geolocation();//获取当前位置信息geolocation.getCurrentPosition(function (r) {if (this.getStatus() == BMAP_STATUS_SUCCESS) {console.log('您的位置:' + r.point.lng + ',' + t);var map = new BMap.Map("l-map"); // 创建Map实例map.centerAndZoom(new BMap.Point(r.point.lng, t), 13); // 初始化地图,设置中⼼点坐标和地图级别map.setCurrentCity("深圳"); // 设置地图显⽰的城市此项是必须设置的map.enableScrollWheelZoom(true); //开启⿏标滚轮缩放//var driving = new BMap.DrivingRoute(map, { renderOptions: { map: map, panel: "r-result", autoViewport: true } });//driving.search("中关村⼀街", "魏公村");var transit = new BMap.TransitRoute(map, {onResultsHtmlSet: function () { $("#r-result").show() },policy: 0,renderOptions: { map: map, panel: "r-result" }});//起点位置var start = new BMap.Point(r.point.lng, t);//需要导航的地址var end = new BMap.Point(GetRequest().la, GetRequest().lg);console.log(start);console.log(end);transit.search(start, end, BMAP_TRANSIT_POLICY_LEAST_TIME);//最少时间//var routePolicy = [BMAP_TRANSIT_POLICY_LEAST_TIME, BMAP_TRANSIT_POLICY_LEAST_TRANSFER, BMAP_TRANSIT_POLICY_LEAST_WALKING, BMAP_TRANSIT_POLICY_AVOID_SUBWAYS]; //0最少时间 1 最少换乘 }else {alert('failed' + this.getStatus());}}, { enableHighAccuracy: true })。

百度地图所用数据分析

百度地图所用数据分析

鉴于在一些答案中评论区中的讨论,由于不能上图,我还是来写一下这个答案罢。

这个问题比较复杂,要真尽量说清楚的话需要费不少口舌,因此答案会比较长,请看官不妨耐心点。

要说数据来源,首先得对地图数据做一个分类,因为不同分类的数据,其来源,采集方法都是有大不同的。

并非想说上面高票答案的分类方式不对或者不可以,只是说,其分类方式对于完全说明这个问题,可能不是太合适和合理。

里面的一些观点和描述也有一些小问题,所以做一些勘误和对问题更有针对性的补充,希望大家不要被一些谬误的概念所误导。

要明白地图的数据分类,必须先理解一个概念,就是地图图层的概念:如上图,电子地图对我们实际空间的表达,事实上是通过不同的图层去描述,然后通过图层叠加显示来进行表达的过程。

对于我们地图应用目标的不同,叠加的图层也是不同的,用以展示我们针对目标所需要信息内容。

其次呢,我引入一下矢量模型和栅格模型的概念,GIS(电子地图)采用两种不同的数学模型来对现实世界进行模拟:•矢量模型:同多X,Y(或者X,Y,Z)坐标,把自然界的地物通过点,线,面的方式进行表达•栅格模型(瓦片模型):用方格来模拟实体我们目前在互联网公开服务中,或者绝大多数手机APP里看到的,都是基于栅格(瓦片)模型的地图服务,比如大家看到的百度地图或者谷歌地图,其实对于某一块地方的描述,都是通过10多层乃是20多层不同分辨率的图片所组成,当用户进行缩放时,根据缩放的级数,选择不同分辨率的瓦片图拼接成一幅完整的地图(由于一般公开服务,瓦片图都是从服务器上下载的,当网速慢的时候,用户其实能够亲眼看到这种不同分辨率图片的切换和拼接的过程)对于矢量模型的电子地图来说,由于所有的数据以矢量的方式存放管理,事实上图层是一个比较淡薄的概念,因为任何地图元素和数据都可以根据需要自由分类组成,或者划分成不同的图层。

各种图层之间关系可以很复杂,例如可以将所有的道路数据做成一个图层,也可以将主干道做成一个图层,支路做成另外一个图层。

百度地图经纬度和Google地图经纬度互转

百度地图经纬度和Google地图经纬度互转

百度地图经纬度和Google地图经纬度互转国内主流坐标系类型主要有以下三种:1、WGS84:一种大地坐标系,也是目前广泛使用的 GPS 全球卫星定位系统使用的坐标系。

2、GCJ02:由中国国家测绘局制订的地理信息系统的坐标系统,是由 WGS84 坐标系经过加密后的坐标系。

3、BD09:百度坐标系,在 GCJ02 坐标系基础上再次加密。

其中BD09LL 表示百度经纬度坐标,BD09MC 表示百度墨卡托米制坐标。

注意:百度地图 SDK 在国内(包括港澳台)使用的是 BD09LL 坐标(定位SDK 默认使用GCJ02 坐标);在海外地区,统一使用WGS84 坐标。

百度地图 SDK 是用什么坐标类型?1、国内(包括港澳台),输入、输出默认使用 BD09LL 坐标。

支持全局声明为GCJ02 坐标类型,全应用支持输入GCJ02 坐标,返回GCJ02 坐标。

2、海外地区,输出为 WGS84 坐标。

为什么需要坐标转换?国内(包括港澳台):默认使用BD09LL 坐标,国外使用WGS84 坐标。

若使用非BD09LL 坐标直接叠加在百度地图上,因坐标值不同,展示位置会有偏移。

因此:1)在国内(包括港澳台)通过其他坐标系(WGS84、GCJ02)调用百度地图服务时需要首先将其他坐标转换为BD09LL,再访问百度地图数据。

2)在国外,POI 使用 WGS84 坐标数值,则无需转换、百度地图国外即使用 WGS84 坐标。

非百度坐标系,如何转换成百度坐标系?1、通用坐标转换方法:手动调用百度地图SDK 坐标转换接口,将输入的 WGS84 或 GCJ02 坐标转换为 BD09LL 坐标。

适用于所有百度地图开发者,是转换为百度 BD09LL 坐标的官方基础算法。

2、自动坐标转换算法:支持全局声明为GCJ02 坐标类型,全应用内自动执行从GCJ02 到BD09LL 的坐标转换,即直接输入GCJ02 坐标,返回 GCJ02 坐标。

谷歌地图采用的是WGS84 地理坐标系(中国范围除外),所以需要对百度地图的坐标进行转换,以下是坐标的转化方式,可以方便和其他平台转化:。

通过百度地图API将百度坐标转换成GPS经纬度

通过百度地图API将百度坐标转换成GPS经纬度

通过百度地图API将百度坐标转换成GPS经纬度百度地图API链接:实现的java代码如下:package com.dataprocess;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import .URL;import .URLConnection;import java.util.List;import java.util.Map;import java.util.regex.Matcher;import java.util.regex.Pattern;public class CopyOfTest {public static void main(String args[]){String params ="coords=114.21892734521,29.575429778924&from=1&to=5&ak=ZQU8ZGeBf95nN8wY1cNL13NP&output=json";String s=CopyOfTest.sendGet("/geoconv/v1/?", params);String[] s1 = s.split("\\[");String[] s2 = s1[1].split(",");String regEx ="[^0-9.\\+\\-\\s]";Pattern p = pile(regEx);Matcher m1 = p.matcher(s2[0]);Matcher m2 = p.matcher(s2[1]);String[] arrs1=m1.replaceAll("").trim().split("\\s");String[] arrs2=m2.replaceAll("").trim().split("\\s");System.out.println(s1[1]);System.out.println(arrs1[0]+" "+arrs2[0]);}public static String sendGet(String url, String param) {String result = "";BufferedReader in = null;try {String urlNameString = url + param;URL realUrl = new URL(urlNameString);// 打开和URL之间的连接URLConnection connection = realUrl.openConnection();// 设置通⽤的请求属性connection.setRequestProperty("accept", "*/*");connection.setRequestProperty("connection", "Keep-Alive");connection.setRequestProperty("user-agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");// 建⽴实际的连接connection.connect();// 获取所有响应头字段Map<String, List<String>> map = connection.getHeaderFields();// 遍历所有的响应头字段// for (String key : map.keySet()) {// System.out.println(key + "--->" + map.get(key));// }// 定义 BufferedReader输⼊流来读取URL的响应in = new BufferedReader(new InputStreamReader(connection.getInputStream(),"utf-8"));String line;while ((line = in.readLine()) != null) {result += line;}} catch (Exception e) {System.out.println("发送GET请求出现异常!" + e);e.printStackTrace();}// 使⽤finally块来关闭输⼊流finally {try {if (in != null) {in.close();}} catch (Exception e2) {e2.printStackTrace();}}return result;}/*** 向指定 URL 发送POST⽅法的请求** @param url* 发送请求的 URL* @param param* 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。

百度地图API位置偏移的校准算法

百度地图API位置偏移的校准算法

百度地图API位置偏移的校准算法转⾃原⽂在开始使⽤百度地图进⾏开发时可能会遇到⼀件相当奇怪的事情,使⽤百度定位的经纬度在地图上显⽰相当不准确,这⼀问题我在开发和安卓开始时都遇到过。

第⼀次使⽤百度地图api获取位置并在地图上显⽰是在开发的时候,那是不知道具体原因⽆奈在获取的地理位置上加了⼀个偏移量进⾏校准,虽能勉强解决,但是不太准确。

后来在安卓开始也同样遇到了这个问题,才发现百度地图定位偏移已经不是⼀个偶然问题了。

百度地图定位偏移的原因以下来⾃互联⽹:⼀、坐标体系⾸先我们要明⽩,开发者能接触到哪些坐标体系呢?第⼀种分类:1、 GPS,WGS-84,原始坐标体系。

⼀般⽤国际标准的GPS记录仪记录下来的坐标,都是GPS的坐标。

很可惜,在中国,任何⼀个地图产品都不允许使⽤GPS坐标,据说是为了保密。

GPS坐标形式如图,度分秒形式的经纬度:百度地图API位置偏移的校准算法1百度地图API位置偏移的校准算法22、 GCJ-02,国测局02年发布的坐标体系。

⼜称“⽕星坐标”。

在中国,必须⾄少使⽤GCJ-02的坐标体系。

⽐如⾕歌,腾讯,⾼德都在⽤这个坐标体系。

GCJ-02也是国内最⼴泛使⽤的坐标体系。

3、其他坐标体系。

⼀般都是由GCJ-02进过偏移算法得到的。

这种体系就根据每个公司的不同,坐标体系都不⼀样了。

⽐如,百度和搜狗就使⽤⾃⼰的坐标体系,与其他坐标体系不兼容。

第⼆种分类:⾸先明⽩,所有坐标体系的原点,都是⾮洲。

百度地图API位置偏移的校准算法31、经纬度。

这个是球⾯坐标,对于北京来说,就是(116.38817139.935961)这样的坐标。

⽐如腾讯、⾼德、百度都是这样的经纬度坐标。

⾕歌是经纬度顺序写反的经纬度坐标。

如果是度分秒坐标,需要进⾏转换,才能得到这样的经纬度坐标。

详见坐标转换。

2、墨卡托坐标。

平⾯坐标,相当于是直线距离,数字⼀般都⽐较⼤,像这样的。

(215362.00021333335 99526.00034912192)墨卡托坐标,主要⽤于程序的后台计算。

cass提取坐标六种方法

cass提取坐标六种方法

cass提取坐标六种方法一、概述在地理信息系统(GIS)领域,CASS(Coordinate Analysis and System Support)是一种常用的工具,用于从地图中提取坐标信息。

坐标信息是地理数据的重要组成部分,它可以帮助我们准确地定位和描述地理位置。

在本文中,我们将讨论六种常见的方法来使用CASS提取坐标信息。

二、CASS提取坐标方法一:手动测量法手动测量法是最基本、最传统的一种方法,它需要人工使用测量工具(如经纬仪、测距仪等)在地图上测量目标点的位置,然后将测量结果记录下来作为坐标信息。

这种方法的优点是简单直接,不需要任何专业设备,适用于小范围和简单的测量任务。

但是,手动测量法存在测量误差大、效率低下等问题,不适用于大范围和复杂的测量任务。

三、CASS提取坐标方法二:数字化法数字化法是一种常见的自动化方法,它通过将地图图像转换成数字化格式,在计算机中进行处理和分析,从而提取出目标点的坐标信息。

数字化法可以使用专门的软件或工具来完成,比如ArcGIS、AutoCAD等。

它的优点是能够高效、准确地提取坐标信息,适用于大范围和复杂的测量任务。

然而,数字化法需要专业的技术和软件支持,对操作人员的要求较高。

3.1 使用ArcGIS进行数字化ArcGIS是一种常用的地理信息系统软件,它提供了强大的功能和工具,可以实现地图的数字化和坐标提取。

使用ArcGIS进行数字化可以按照以下步骤进行:1.打开ArcGIS软件,并加载需要进行数字化的地图;2.选择编辑工具,并选择绘制要素的类型(如点、线、面等);3.在地图上单击鼠标,绘制目标点的形状;4.在属性表中填写相关信息,包括坐标等;5.完成目标点的绘制和属性填写,保存并导出提取的坐标信息。

3.2 使用AutoCAD进行数字化AutoCAD是一种常用的计算机辅助设计(CAD)软件,它也可以用于地图的数字化和坐标提取。

使用AutoCAD进行数字化可以按照以下步骤进行:1.打开AutoCAD软件,并加载需要进行数字化的地图;2.选择绘画工具和命令,如“绘制点”、“绘制线”等;3.在地图上指定目标点的位置(使用坐标或相对位置);4.完成目标点的绘制,保存并导出提取的坐标信息。

百度地图API地理位置和坐标转换

百度地图API地理位置和坐标转换

百度地图API地理位置和坐标转换
1.由地名(省份、城市、街道等)得到其对应的百度地图坐标:
/geocoder/v2/?output=json&ak=你从百度申请到的Key&address=北京市
其对⼤陆主要城市的解析很好,但是有些⼤陆的⼩城市、⾹港、台湾的⼀些区域⽆法解析,我测试到的如下:
解析错误的城市:伊犁|新界|新⽵|港岛|基隆|云林|博尔塔拉|桃园|苗栗|南投|克孜勒苏|台东|
伊犁可以使⽤新疆伊犁来解析,更好的办法是使⽤⾕歌地图API,⽐如这样使⽤:
/maps/api/geocode/json?sensor=false&address=地址
在⾕歌地图中,港岛可以使⽤:
Hong Kong Island
来解析,
云林可以使⽤:
Yunlin County, Taiwan
来解析,
博尔塔拉可以使⽤博尔塔拉蒙古⾃治州来解析,
2.由坐标反解得到对应的地址:
/geocoder/v2/?output=json&ak=你从百度申请到的Key&location=纬度(Latitude),经度(Longitude)
注意,纬度和经度之间有个英⽂逗号。

具体参考:。

提取行政区边界经纬度坐标(高德+百度)

提取行政区边界经纬度坐标(高德+百度)

提取⾏政区边界经纬度坐标(⾼德+百度)前⾔近来由于⼯作需要,需要提取某些城市的经纬度坐标,稍微搜索了⼀下,发现百度地图和⾼德地图都提供了相关的函数和例⼦.那么剩余的⼯作也就⽐较简单了,保存坐标,然后转换为WGS坐标,这样才能和现有的GPS数据以及地图匹配.主要问题和解决⽅法本地保存⽂件跨浏览器⽀持由于安全的原因,JavaScript本地保存⽂件的⽅式通常都只有IE⽀持的ActiveXObject/Open⽅法,每次都要提⽰不安全和允许运⾏,⾮常⿇烦.好在其他浏览器⽬前都⽀持<a>标签实现⽂件下载的⽅法.经测试最新的Google Chrome, Mozilla Firefox,百度浏览器,360浏览器下都可以运⾏.不说废话,直接上代码:function Download() {// IEif(/msie/i.test(erAgent)) {var w = window.open("", "导出", "height=0,width=0,toolbar=no,menubar=no,scrollbars=no,resizable=on,location=no,status=no");var filename = document.getElementById("filename").value ;var content = document.getElementById("content").value;w.document.charset = "UTF-8";w.document.write(content);w.document.execCommand("SaveAs", false, filename+'.txt');w.close();}// Firefox/Chrome/Safari/Operaelse {var filename = document.getElementById("filename").value ;var content = document.getElementById("content").value;str = encodeURIComponent(content);document.getElementById("SaveChrome").download = filename+'.txt';var aLink = document.getElementById("SaveChrome") ;aLink.href = "data:text/csv;charset=utf-8,"+str;aLink.click();}}跨浏览器保存⽂件经纬度转换这个话题感兴趣的朋友可以⾃⼰搜索⽕星坐标相关转换,精度在1m范围的⽹上提供有服务可以免费使⽤.⾃写程序经验证精度在6m 以内.百度地图⽅法关键函数是 BMap.Boundary() ⽣成的类,调⽤它的⽅法get就可以通过名称获得县或市级以上的⾏政区域.function getBoundary() {var bdary = new BMap.Boundary();var name = document.getElementById("districtName").value;bdary.get(name, function (rs) { //获取⾏政区域var fileName = "";var newFileObject = fso.CreateTextFile(folderName + "\\" + name + ".txt", true);map.clearOverlays(); //清除地图覆盖物var count = rs.boundaries.length; //⾏政区域的点有多少个for (var i = 0; i < count; i++) {var ply = new BMap.Polygon(rs.boundaries[i], { strokeWeight: 2, strokeColor: "#ff0000" }); //建⽴多边形覆盖物map.addOverlay(ply); //添加覆盖物map.setViewport(ply.getPath()); //调整视野}newFileObject.write(rs.boundaries[0]);newFileObject.Close();});}百度提取⽅法⾼德地图关键代码通过阅读⽰例⽂件可以发现在下拉列表返回⾥⾯有边界值的出现.amapAdcode.search = function(adcodeLevel, keyword, selectId) {//查询⾏政区划列表并⽣成相应的下拉列表var me = this;if (adcodeLevel == 'district'||adcodeLevel == 'city') {//第三级时查询边界点this._district.setExtensions('all');} else {this._district.setExtensions('base');}this._district.setLevel(adcodeLevel); //⾏政区级别this._district.search(keyword, function(status, result) {//注意,api返回的格式不统⼀,在下⾯⽤三个条件分别处理var districtData = result.districtList[0];if (districtData.districtList) {me.createSelectList(selectId, districtData.districtList);} else if (districtData.districts) {me.createSelectList(selectId, districtData.districts);} else {document.getElementById(selectId).innerHTML = '';}map.setCenter(districtData.center);me.clearMap();me.addPolygon(districtData.boundaries);⾼德提取⽅法其中的districtData.boundaries 就是我们需要的.调试了⼀下,⼤胆猜测果然是实现了Tostring() ⽅法的⼀个对象."104.639106,26.863388,104.644771,26.861842,104.64767,26.854997,104.647748..." 很明显的就是我们需要的gcj坐标.总结⾄此,基本也就没有什么问题了,剩余的⼯作就是解析得到的⽂件.需要提取全国的数据也就是循环读取全国城市列表⽂件了.(通常搜索cityname,电脑⾥⾯都会找到的,原因,呵呵,猜测是迅雷,QQ之类的IP定位需要吧.)重要的⼀点,推荐使⽤⾼德地图,原因就是百度地图得到的⾏政规划有问题,不包含县级市.最典型的就是贵州省,很多地市都是分离的,是带岛或洞的复杂多边形.百度在这⾥完败.关于怎么处理这⾥复杂的多边形以⽀持在MapWinGIS显⽰和处理,下次会写⼀篇笔记.。

如何利用地图爬虫收集数据

如何利用地图爬虫收集数据

如何利用地图爬虫收集数据百度地图、高德地图、搜狗地图、腾讯地图、谷歌地图等各种地图网页中,蕴含着丰富的数据信息。

我们可以通过八爪鱼采集器的简易模式或自定义模式,将所需的数据采集下来。

常见的数据有:商家所在城市、具体地址、名称、联系方式、具体坐标等。

一、使用八爪鱼网站简易采集模式采集地图数据1、在八爪鱼采集器(7.0版本以上)主页,选择“简易采集”>点击“百度”图标进入简易采集>根据数据需求,选择合适项目,并点击“立即使用”。

在这里,我们以“百度地图采集”为例。

如何利用地图爬虫收集数据图12、点击“立即使用”进入后,页面上方为城市、搜索关键词输入框,页面下方为示例数据。

如下图,我们输入“深圳”和“电影院”,然后点击“保存”,即会出现“开始采集”按钮。

如何利用地图爬虫收集数据图23、点击“开始采集”按钮,选择合适的采集方式。

我们一般选择“启动本地采集”。

启动采集之后,所需的地图数据很快采集出来。

选择合适的格式导出(默认选择excel格式)如何利用地图爬虫收集数据图34、数据导出后如图所示如何利用地图爬虫收集数据图3以上就是使用八爪鱼的简易模式,采集百度地图坐标的示例。

仅需点击几个按钮,选择几个关键词,即可瞬间采集大量数据,十分简单高效,大家可以试试。

简易模式还支持搜狗地图、腾讯地图的快速采集,打开八爪鱼客户端即可体验。

简易采集-腾讯地图简易采集-搜狗地图二、使用八爪鱼自定义采集模式,采集百度地图数据以下是一个使用八爪鱼自定义模式,采集百度地图数据的完整示例。

步骤1:创建采集任务如何利用地图爬虫收集数据图42)将要采集的网站URL复制粘贴到输入框中,点击“保存网址”如何利用地图爬虫收集数据图5步骤2:输入采集信息1)在页面右上角,打开“流程”,以展现出“流程设计器”和“定制当前操作”两个板块。

点击地图上的输入框,然后在右侧操作提示框中,选择“输入文字”如何利用地图爬虫收集数据图62)在操作框提示中,输入想要查询的文本。

百度地图动态添加轨迹坐标点

百度地图动态添加轨迹坐标点

百度地图动态添加轨迹坐标点1 <!DOCTYPE html>2 <html>3 <head>4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />5 <title>百度地图轨迹运动</title>6 <script type="text/javascript" src="/api?v=2.0&ak=YOUR KEY"></script>7 <style type="text/css">8 #allmap {9 width: auto;10 height: 600px;11 border: 1px solid gray;12 }1314 #user1 {15 top: 80px;16 }1718 #user2 {19 top: 200px;20 }2122 .user-list {23 right: 25px;24 position: fixed;25 border: 1px solid #c0c0c0;26 width: 180px;27 height: 110px;28 background: #fff;29 border-radius: 10px;30 filter: alpha(Opacity=80);31 -moz-opacity: 0.8;32 opacity: 0.8;33 }3435 .user-list ul {36 list-style-type: none;37 padding-left: 10px;38 }3940 .user-list ul li {41 padding-bottom: 10px;42 }43 </style>44 </head>45 <body>46经度:<input id="lng" type="text" placeholder="输⼊地图经度">47纬度:<input id="lat" type="text" placeholder="输⼊地图纬度" required="">48 <button id="addPoint" onclick="run();">添加轨迹</button><br /><br />49 <div id="allmap"></div>50 <div id="user1"class="user-list">51 <ul>52 <li>姓名:张三</li>53 <li>职务:3</li>54 <li>电话:135********</li>55 </ul>56 </div>57 <div id="user2"class="user-list">58 <ul>59 <li>姓名:李四</li>60 <li>职务:3</li>61 <li>电话:135********</li>62 </ul>63 </div>64 <script type="text/javascript">65//百度地图API66var map = new BMap.Map("allmap");67 map.centerAndZoom(new BMap.Point(116.404, 39.915), 13);68 map.enableScrollWheelZoom(true); //启动滚轮放⼤缩⼩69 map.addControl(new BMap.NavigationControl()); // 添加平移缩放控件70 map.addControl(new BMap.ScaleControl()); // 添加⽐例尺控件71 map.addControl(new BMap.OverviewMapControl()); //添加缩略地图控件7273var poinArr = new Array();7475 poinArr[poinArr.length] = new BMap.Point(106.521436, 29.532288); //起点默认为重庆7677//起点-重庆 106.521436, 29.532288 添加到⽂本框的⼏点坐标点(测试),注意坐标点需要有规律些喔!78//终点-西安 108.983569, 34.28567579//终点-北京 116.404449, 39.92042380//终点-沈阳 123.432790, 41.80864481 window.run = function () {82var log = document.getElementById("lng").value; //地图经度83var lat = document.getElementById("lat").value; //地图纬度8485//根据⽤户添加的点动态添加地图轨迹86 poinArr[poinArr.length] = new BMap.Point(log, lat);87 map.clearOverlays(); //清除地图上所有的覆盖物88var driving = new BMap.DrivingRoute(map); //创建驾车实例8990if (poinArr.length > 1) {91for (var i = 1; i < poinArr.length; i++) {92 driving.search(poinArr[i - 1], poinArr[i]);93 }94 }95 driving.setSearchCompleteCallback(function () {96var pts = driving.getResults().getPlan(0).getRoute(0).getPath(); //通过驾车实例,获得⼀系列点的数组97var polyline = new BMap.Polyline(pts);98 map.addOverlay(polyline);99var m1 = new BMap.Marker(poinArr[0]);100 map.addOverlay(m1); //红标记101 lab1 = new bel("起点", { position: poinArr[0] });102 map.addOverlay(lab1); //标记起点103for (var i = 1; i < poinArr.length; i++) {104var m = new BMap.Marker(poinArr[i]);105 map.addOverlay(m);106 lab = new bel("终点", { position: poinArr[i] });107 map.addOverlay(lab);108 }109 setTimeout(function () {110 map.setViewport(poinArr); //调整到最佳视野111 }, 1000);112 });113 }114 </script>115 </body>116 </html>。

百度墨卡托坐标转百度经纬度坐标方法实现

百度墨卡托坐标转百度经纬度坐标方法实现

百度墨卡托坐标转百度经纬度坐标⽅法实现using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Collections;namespace DataProcess{class CoordinatesConver{private static double[] Sp = { 1.289059486E7, 8362377.87, 5591021, 3481989.83, 1678043.12, 0 };private static String BAIDU_LBS_TYPE = "bd09ll";private static double pi = 3.1415926535897932384626;private static double a = 6378245.0;private static double ee = 0.00669342162296594323;/// <summary>/// Bd09mc To Bd09(精度⾼)/// </summary>/// <param name="lng"></param>/// <param name="lat"></param>/// <returns></returns>public static double[] Mercator2BD09(double lng, double lat){double[] lnglat = new double[2];ArrayList c = null;//List<Double> d0 = new ArrayList<Double>();ArrayList d0 = new ArrayList();double[] d0str = { 1.410526172116255E-8, 8.98305509648872E-6, -1.9939833816331, 200.9824383106796, -187.2403703815547, 91.6087516669843, -23.38765649603339, 2.57121317296198, -0.03801003308653, 1.73379812E7 };for (int i = 0; i < d0str.Length; i++){d0.Add(d0str[i]);}ArrayList d1 = new ArrayList();double[] d1str = { -7.435856389565537E-9, 8.983055097726239E-6, -0.78625201886289, 96.32687599759846, -1.85204757529826, -59.36935905485877, 47.40033549296737, -16.50741931063887, 2.28786674699375, 1.026014486E7 }; for (int i = 0; i < d1str.Length; i++){d1.Add(d1str[i]);}ArrayList d2 = new ArrayList();double[] d2str = { -3.030883460898826E-8, 8.98305509983578E-6, 0.30071316287616, 59.74293618442277, 7.357984074871, -25.38371002664745, 13.45380521110908, -3.29883767235584, 0.32710905363475, 6856817.37 };for (int i = 0; i < d2str.Length; i++){d2.Add(d2str[i]);}ArrayList d3 = new ArrayList();double[] d3str = { -1.981981304930552E-8, 8.983055099779535E-6, 0.03278182852591, 40.31678527705744, 0.65659298677277, -4.44255534477492, 0.85341911805263, 0.12923347998204, -0.04625736007561, 4482777.06 };for (int i = 0; i < d3str.Length; i++){d3.Add(d3str[i]);}ArrayList d4 = new ArrayList();double[] d4str = { 3.09191371068437E-9, 8.983055096812155E-6, 6.995724062E-5, 23.10934304144901, -2.3663490511E-4, -0.6321817810242, -0.00663494467273, 0.03430082397953, -0.00466043876332, 2555164.4 };for (int i = 0; i < d4str.Length; i++){d4.Add(d4str[i]);}ArrayList d5 = new ArrayList();double[] d5str = { 2.890871144776878E-9, 8.983055095805407E-6, -3.068298E-8, 7.47137025468032, -3.53937994E-6, -0.02145144861037, -1.234426596E-5, 1.0322952773E-4, -3.23890364E-6, 826088.5 };for (int i = 0; i < d5str.Length; i++){d5.Add(d5str[i]);}lnglat[0] = Math.Abs(lng);lnglat[1] = Math.Abs(lat);for (int d = 0; d < 6; d++){if (lnglat[1] >= Sp[d]){if (d == 0){c = d0;}if (d == 1){c = d1;}if (d == 2){c = d2;}if (d == 3){c = d3;}if (d == 4){c = d4;}if (d == 5){c = d5;}break;}}lnglat = Yr(lnglat, c);return lnglat;}private static double[] Yr(double[] lnglat, ArrayList b){if (b != null){double c = double.Parse(b[0].ToString()) + double.Parse(b[1].ToString()) * Math.Abs(lnglat[0]);double d = Math.Abs(lnglat[1]) / double.Parse(b[9].ToString());d = double.Parse(b[2].ToString()) + double.Parse(b[3].ToString()) * d + double.Parse(b[4].ToString()) * d * d + double.Parse(b[5].ToString()) * d * d * d + double.Parse(b[6].ToString()) * d * d * d * d + double.Parse(b[7].ToString()) * d * d * double bd;if (0 > lnglat[0]){bd = -1 * c;}else{bd = c;}lnglat[0] = bd;double bd2;if (0 > lnglat[1]){bd2 = -1 * d;}else{bd2 = d;}lnglat[1] = bd2;return lnglat;}return null;}}}该⽅法参考了 https:///qq_16664325/article/details/67639684这篇⽂章中主要是Java版本的,我把它改成了C#版本。

百度地图API调用转换WGS坐标以及上传点到鹰视

百度地图API调用转换WGS坐标以及上传点到鹰视

百度地图API调⽤转换WGS坐标以及上传点到鹰视* 根据某个对象的经纬度和⾼度在百度地图上绘制出车辆的轨迹* ⾸先根据离散的点,拟合出⼀个平滑的曲线* 然后将采样后的曲线绘制在百度地图上* ⾸先获取百度的AK : 121* service:* 开发者使⽤⼀个百度的service可以管理很多的电动车,每⼀个电动车称为⼀个entity,service的service_id是唯⼀的,开发者可以使⽤轨迹管理平台管理service,包括创建,编辑和查看* entity:* ⼀个设备有⼀个唯⼀的entity_name作为唯⼀标识,⼀个service最多同时管理⼀百万个entity,鹰眼web api提供entity的增删改查的接⼝* entity column:* entity⾃定义的字段,可以⽤于描述eneity* track:* entity移动产⽣的轨迹,由point组成,数量可以没有限制,web api提供了添加,批量添加,查询历史轨迹的接⼝。

* track column:* 除了,坐标,速度,⽅向,定位时间等轨迹的系统字段之外,可以添加⾃定义的字段。

例如⼼率,油量等等,可以⾃定义10个字段* fence:* 地理围栏,是⼀个区域,离开这个区域报警* object:* 代表图像和视频对象,⽀持上传图像数据,⽀持图像数据的存储,查询和下载1import java.io.BufferedReader;2import java.io.BufferedWriter;3import java.io.IOException;4import java.io.InputStreamReader;5import java.io.OutputStreamWriter;6import java.io.PrintWriter;7import .MalformedURLException;8import .URL;9import .URLConnection;10import java.util.ArrayList;11import java.util.List;12import java.util.Map;1314import org.json.JSONArray;15import org.json.JSONObject;1617181920/**21 *22 * @author Administrator23 *24*/25public class BaiDuMapApi {2627public static final String ak="121";28public static final String coord_type_input_bd="bd09ll";29public static final String coord_type_input_wgs="wgs84";30/**31 * WGS坐标转化为baidu需要的坐标,返回的字符串等待处理。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

百度地图坐标采集方法
本文介绍使用八爪鱼采集器简易模式采集百度地图坐标的方法。

需要采集百度内容的,在网页简易模式界面里点击百度进去之后可以看到所有关于百度的规则信息,我们直接使用就可以的。

百度地图坐标采集方法步骤1
采集百度地图坐标内容(下图所示)即通过在百度地图输入关键词进行搜索,
采集搜索到的店铺的经纬度数据。

1、 找到百度地图坐标规则然后点击立即使用
百度地图坐标采集方法步骤2
2、下图显示的即为简易模式里面百度地图坐标的规则
查看详情:点开可以看到采集的目标网址。

任务名:自定义任务名,默认为百度地图坐标采集
任务组:给任务划分一个保存任务的组,如果不设置会有一个默认组城市:输入要采集的目标城市名,如:深圳
搜索关键词:设置要采集的关键词,这个任务一次只能搜索一个关键词示例数据:这个规则采集的所有字段信息
百度地图坐标采集方法步骤3
3、规则制作示例
例如采集搜索深圳所有肯德基的数据信息,在设置里如下图所示:任务名:自定义任务名,也可以不设置按照默认的就行
任务组:自定义任务组,也可以不设置按照默认的就行
城市:输入要采集的目标城市深圳
搜索关键词:设置要采集的关键词肯德基
设置好之后点击保存
百度地图坐标采集方法步骤4
保存之后会出现开始采集的按钮
百度地图坐标采集方法步骤5
4、选择开始采集之后系统将会弹出运行任务的界面
可以选择启动本地采集(本地执行采集流程)或者启动云采集(由云服务器执行采集流程),这里以启动本地采集为例,我们选择启动本地采集按钮
百度地图坐标采集方法步骤6
6、选择本地采集按钮之后,系统将会在本地执行这个采集流程来采集数据,下图为本地采集的效果
百度地图坐标采集方法步骤7
7、采集完毕之后选择导出数据按钮即可,这里以导出excel2007
为例,选择这
个选项之后点击确定
百度地图坐标采集方法步骤8 8、然后选择文件存放在电脑上的路径,路径选择好之后选择保存
百度地图坐标采集方法步骤9
9、这样数据就被完整的导出到自己的电脑上来了哦
百度地图坐标采集方法步骤10
相关采集教程:
美团商家信息采集
58同城信息采集
大众点评评价采集
八爪鱼——70万用户选择的网页数据采集器。

1、操作简单,任何人都可以用:无需技术背景,会上网就能采集。

完全可视化流程,点击鼠标完成操作,2分钟即可快速入门。

2、功能强大,任何网站都可以采:对于点击、登陆、翻页、识别验证码、瀑布流、Ajax脚本异步加载数据的网页,均可经过简单设置进行采集。

3、云采集,关机也可以。

配置好采集任务后可关机,任务可在云端执行。

庞大云采集集群24*7不间断运行,不用担心IP被封,网络中断。

4、功能免费+增值服务,可按需选择。

免费版具备所有功能,能够满足用户的基本采集需求。

同时设置了一些增值服务(如私有云),满足高端付费企业用户的需要。

相关文档
最新文档