本篇文章给大家谈谈百度地图apigis,以及百度地图api使用教程对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
目录一览:
怎么把gis得到的经纬度坐标转换成百度地图上能用的坐标
没办法,百度地图坐标除了火星坐标之外还进行了加密算法,除非搞到那一套算法,不然没办法解决。
不过百度地图API似乎提供了经纬度坐标转百度坐标的接口,你可以去看看参考文档
百度地图api怎么做交通可达性分析
要说数据来源,首先得对地图数据做一个分类,因为不同分类的数据,其来源,采集 *** 都是有大不同的。
并非想说上面高票答案的分类方式不对或者不可以,只是说,其分类方式对于完全说明这个问题,可能不是太合适和合理。里面的一些观点和描述也有一些小问题,所以做一些勘误和对问题更有针对性的补充,希望大家不要被一些谬误的概念所误导。
添加微信好友, 获取更多信息
复制微信号
要明白地图的数据分类,必须先理解一个概念,就是地图图层的概念:
如上图,电子地图对我们实际空间的表达,事实上是通过不同的图层去描述,然后通过图层叠加显示来进行表达的过程。
对于我们地图应用目标的不同,叠加的图层也是不同的,用以展示我们针对目标所需要信息内容。
其次呢,我引入一下矢量模型和栅格模型的概念,GIS(电子地图)采用两种不同的数学模型来对现实世界进行模拟:
矢量模型:同多X
Y(或者X
Y
Z)坐标,把自然界的地物通过点,线,面的方式进行表达
栅格模型(瓦片模型):用方格来模拟实体
如何同时连接ArcGIS与百度地图Android SDK
两个SDK都是将其API库封装成so动态链接库供上层应用(Java)调用,但两者在具体实现上存在差异,也是这个差异导致将两个SDK集成到一个应用中时容易产生强退的bug,这个问题也曾很大的困扰了我一天,特此分享给大家。
☆ 先看看百度地图 for Android SDK的动态库调用 *** :
之一步:在工程里新建libs文件夹,将开发包里的baidumapapi_v2_1_2.jar拷贝到libs根目录下,将libapp_BaiduMapApplib_v2_1_2.so和libvi_voslib.so 拷贝到libs\armeabi目录下(官网demo里已有这三个文件,如果要集成到自己的工程里,就需要自己添加),拷贝完成后的工程目录如下图所示;
注:liblocSDK3.so和locSDK_3.1.jar为百度定位SDK所使用资源,开发者可根据实际需求自行添加。
第二步:在工程属性-Java Build Path-Libraries中选择“Add External JARs”,选定baidumapapi_v2_1_2.jar,确定后返回。
通过以上两步操作后,您就可以正常使用百度地图SDK为您提供的全部功能了。
☆ 再看看ArcGIS for Android SDK的动态库调用 ***
其是通过在Eclipse集成开发环境上安装ArcGIS插件来实现的,具体如何安装就不赘述了。当 ArcGIS开发插件安装完成后,在新建工程的选项中就可以看到【ArcGIS Project for Android】和【ArcGIS Samples for Android】的菜单,ArcGIS Android API的开发环境就顺利配置完成了。
然后你可以New -- Project --ArcGIS Project for Android来新建一个带其动态链接库的Android应用程序。例如创建一个test工程,创建成功后如下图所示。本例采用最新的ArcGIS for Android SDK 10.1。
小结:以上两种 *** ,从用户便捷性上来说,ArcGIS 更加“智能”一些,将动态链接库添加的工作,直接已经集成到new project里面,对于初学者来说,可以完全忽略这些细节而直接进入关键开发工作;百度地图的SDK相对来说,更加灵活一些,给用户更大的空间。
但也就是这两种方式的差异导致了当两个SDK结合到一个程序里的时候就容易出错。细心的朋友应该可以发现一个问题,百度地图SDK里的动态链接库只有一个armeabi文件夹,但是ArcGIS SDK却有两个文件夹,armeabi和armeabi-v7a,其中均有一个libruntimecore_java.so库文件。
这两个文件夹是何用意呢?armeabi和armeabi-v7a是表示cpu的类型,不同的cpu的特性不一样,armeabi就是针对普通的或旧的arm cpu,armeabi-v7a是针对有浮点运算或高级扩展功能的arm cpu。简单来说,Android为了适应五花八门各式各样的智能终端硬件环境,采用了不同的配置对应不同文件夹的调用模式,好比大家熟悉的不同屏幕dpi会调用不同的图片文件夹,如下图。
那么关键的来了,当我们严格按照两个SDK添加链接库后,百度地图三个so库文件就存放在armeabi文件夹下,而armeabi-v7a文件夹下并没有百度地图相应的so库,但ArcGIS却在两个文件夹下都有相应的so库,这里不得不说,Esri作为GIS、地图领域的世界领头羊,考虑的还是比较细。
然后编译程序时,Eclipse会在两个文件夹里搜索相应的库文件,而只会根据Android手机的具体情况拷贝相应文件夹下的库文件。当今绝大多数的手机已经具备了针对有浮点运算或高级扩展功能的arm cpu,所以在手机根目录下/data/data/(program_name)/lib下只会拷贝armeabi-v7a文件夹下的库文件,而此时并不会有百度地图的so库文件。从而会导致百度地图SDK程序直接崩溃,并报出java.lang.ExceptionInInitializerError错误。
明白了原理,解决办法就十分简单了,将armeabi文件夹下百度地图的so库文件拷贝到armeabi-v7a文件夹下,如下图:
重新clean一下project,重新编译后程序就可以正常调用百度地图和ArcGIS两个SDK库了。
百度地图apigis的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于百度地图api使用教程、百度地图apigis的信息别忘了在本站进行查找喔。