1. 电子地图API比较
声明不是原创的,我是专业做gis的,公司也曾考虑用api开发,不过因限制较多还是作罢。这个作者还是比较了解的
Google Maps API : Google Maps API 基于Google Maps,能够使用 javaScript 将 Google Maps 嵌入网页中。API 提供了大量实用工具用以处理地图,并通过各种服务向地图添加内容,从而使用户能够在自己的网站上创建功能强大的地图应用程序。Google Maps API支持交通地图和卫星地图,有中文语言版本,其地标文件KML格式已经成为在线地图的标准格式,Google Earth和Google Maps都支持KML。目前在国际和国内应用都非常广泛,提到互联网地图的应用,基本上不能不提Google Maps API。
Microsoft Virtual Earth API : 基于Virtual Earth的API,英文版,其例子和显示效果非常丰富,预览效果后可以查看相关源代码,可惜目前不支持中国地图的开发。
Yahoo Maps API : 基于Yahoo Maps,和微软地图一样,也仅支持英文,不支持中国地图的开发。Yahoo地图提供基于Flash、Ajax和Map Image三种形式的开发接口,功能较为齐全,显示效果不错。
MapABC API : 基于MapABC的国内地图供应商,Google地图的中国数据就是使用MapABC的,但其API接口和Google的并不相同,其API的开放性和灵活性不如Google地图API。
MapBar API : 基于MapBar的国内地图供应商,其数据提供网络地图使用。
我要地图API : 基于51地图,我要地图的一个特色是提供地图数据下载,可以实现本地桌面地图,不过其地图数据容量有数百兆之大。
我们对市面上几款主流的地图API服务提供商:Google地图服务,MapABC地图服务,微软地图服务,以及其他地图服务进行技术调研,根据调研总结结果为我们选用更为符合需求的地图服务提供商提供参考。
1.调研内容计划
本次技术调研内容主要为:
1. 各类MAP-API使用方法。MAP-API针对系统的开发效率的调查,比如在使用的合理性,封装的
便利性几个方面。
2. 各类MAP-API的功能初步调研,各类MAP-API在免费版本中的功能限制调研,针对免费和收费
版本的异同,收费策略和价格
3. 针对每种MAP-API以免费版本的API完成一个简单的调用示例,也便于对每种API进行代码级别
的使用体验。
2.调研详细内容
2.1 GOOGLE MAP API 调研
2.1.1. 主要使用方法介绍和评估:
Google Map API的种类和应用场景:
A. Google JavaScript地图API : 内嵌Iframe展现形式,适用于一般的互联网应用系统,具有
标准主流浏览器装载的客户端系统。支持的浏览器类型:ie,firefox,safari,google chrome。使用
标准的Java脚本进行开发,可集成google地图空间,与标准google地图功能类似。
B. Google Maps API(Flash版):FLASH展现形式,使用flex继续开发,适用于标准浏览器装载
的客户端系统。‘
C. Google 静态地图API: 图片:图片展现形式,使用http接口进行图片地图的创建,所实现功
能较前两种少,但无需使用java脚本实现,适用于手机或定制化客户端系统的服务调用。静态地图和前
两种地图相比还有个遵从每位查看者每天的唯一(不同)图像请求不超过 1000 次的查询限制配额,也
就是说每个访问者每天可以查看1000个不同的地图图片,对于相同的图片没有限制,所以考虑到一般系
统的访问量,此配合即可满足大部分系统的要求。
评估:
Google提供的这三种API已经基本可以满足大部分的系统需求,在开发难度上除Flex还不是主流技
术,开发成本较高外,其他两种技术在使用上都使用标准的网页开发技术,接口难度系数不大,尤其是
在静态地图API中,还提供了专门为手机所使用的WAP的地图类型.
2.12. API主要特性列表以及版本功能限制:
Google Map API的主要特性列表:
A. 地址解析(从地址名称解析到具体经纬度)
B. 缩放级别的设置
C. 图像大小的设置
D. 标记添加
E. 地图路径显示
(以上为静态地图和动态地图共有,以下为动态地图独有)
F.事件监听(监听客户端浏览器事件,并在需要接受的事件总定义处理方法)
G.. 地图控件(包括加载标准地图控件以及创建自定义控件,比如可以自己加入标注的控件,切
换地图类型的控件,缩放地图的控件等等)
H. 街道全景对象
I. 与google earth集成
J. 交通功能(行车路线,出行模式,路线路段)
K.可与Google AJAX API 集成开发,提高开发效率
L. 支持HTTPS连接对API的访问(企业版专有)
2.1.3.收费策略和商业限制:
Google Maps Api分为两个版本,一个是免费版,一个是企业版。
免费版不对使用者进行收费,但是对使用场景有一定的商业限制:
A. 每天可发出的地址解析请求数有限制,遵从每位查看者每天的唯一(不同)图像请求不超过
1000 次的查询限制配额。
B. 服务必须让最后的使用者免费访问。所以部分商业用途是符合使用条款的,以下两种情况不能
使用免费版:(1)仅付费客户可以使用您的网站(2)仅可从您的公司或您的 Intranet 中访问您的网
站。 详见google api的使用条款
C. 不能更改或遮盖地图上的徽标或归属内容。
企业版除具有免费版的所有功能外,还会根据收费策略的不同,加强服务功能的提升并更改了一些
商业限条款。这些增强点为:
A. 支持强大的服务级别协议(SLA)
B. 客户服务支持
C. 增加了地址解析限制
D. 商业级应用限制的变更
E. 支持HTTPS连接对API进行访问,达到数据保密的目的。
2.1.4.技术支持:
免费版的技术支持包括google code的专业详细的开发文档和google 地图API论坛的支持。
企业版除上述支持外还有人工的客户服务支持。
2.1.5. Google MAP API 使用:
为了正常使用google API,在进行开发之前需要在其项目主页上
http://code.google.com/intl/zh-CN/apis/maps/ 下载API所需的密钥。
Google Code上有很多map api的示例,讲解的十分全面,这里就不多说了。
总结:Google api 优势: 充足的开发资源和文档资源,与google map平行的api功能,强大的自定义
组件和控件功能。在静态API中有针对mobile类型系统的地图类型,API操作简单高效,符合一般性系统
开发需求。
2.2 MAP ABC API 调研
2.2.1. 主要使用方法介绍和评估:
Map ABC API的种类和应用场景:
A. Ajax For Flash 地图API2&Ajax搜索API : MapABC只有一种API类型,就是基于java脚本技术的
内嵌Flash地图展现形式,适用于一般的互联网应用系统,具有标准主流浏览器装载的客户端系统。支
持的浏览器类型:因为官方未公布所支持的浏览器类型,所以本次调研测试了ie,firefox基本没有问
题,由于MAPABC使用的地图展现载体是flash,所以理论上所有支持flash格式和Javascript的浏览器都
可以使用。
B. MAP ABC 静态API:通过JAVA脚本进行静态地图的生成,主要应用场景在需要加快地图加载,
只是示意性进行地图展示的系统中调用。
C. MAP ABC 地图组件API:在原有API的基础上进行封装,简化了开发复杂度,提高了开发效率。
评估:
MAP ABC接口全部采用java脚本进行调用,脚本使用比较方便,但是生成的地图格式为flash格式
,暂不支持其他格式的地图。至少目前为止厂商在免费版本还未提供基于服务端接口的地图生成的API
,企业版是单独提供此类接口的。目前来看MAPABC API还是着重于地图WEB端的展示作用,从这点来看
,比Google的免费版弱一些。
2.2.2. API主要特性列表以及版本功能限制:
MAP ABC API的主要特性列表:
A. 缩放级别的设置
B. 图像大小的设置
C. 标记添加
D. 地图路径显示
F.事件监听(监听客户端浏览器事件,并在需要接受的事件总定义处理方法)
G.. 地图搜索功能(地点搜索,公交路线搜索,行车路线搜索)
H. 地图绘图工具集成
I. 地图控制面板
J. 静态地图生成功能
K. 地图组件封装
2.2.3.收费策略和商业限制:
MapABC Api分为两个版本,一个是公众版,一个是企业版。
免费版不对使用者进行收费,但是对使用场景有一定的商业限制:
A. 使用Map ABC API服务,网站系统所提供给用户的服务必须是开放给一般大众使用且免费的服务
详见map abc api的API使用条款。
B. 不能更改或遮盖地图上的徽标或归属内容。
企业版除具有公众版版的所有功能外,还会增加一些定制服务和技术支持服务。这些增强点为:
D. 专业开发团队的开发服务
E. 从前台界面到后台功能的定制开发
F. 有针对性的MapABC地图API开发培训
G. 快速响应的技术支持。
2.2.4.技术支持:
免费版的技术支持包括MAP ABC网站文档以及MAP ABC 地图API论坛的支持。
企业版除上述支持外还有人工的客户服务支持。
2.2.5 MAPABC API 的使用
为了正常使用MAPABC API,在进行开发之前需要在其项目主页上
http://code.mapabc.com/v1/signup.shtml 下载API所需的密钥。
示例程序可见其网站。
2.3 其他地图服务 API 调研总结
以上我们对国内国外两种主流的地图服务进行了技术调研,除此之外,市面上还有一些其他的地
图API,比如51ti,yahoo地图API,微软Virtual Earth API,MAPBAR 等。
51ditu和Mapbar同MapABC类似,都是国产地图服务,其特点同MapABC类似,主要是不支持静态地
图的服务端调用,全JAVAscript的调用方式,在WEB上调用方便,但接口灵活性差,并不合适WAP网站的
开发。
Yahoo 的地图接口功能与Google类似,接口类型相比google更为方便和灵活,但是目前雅虎地图
API服务还不支持中国地图,所以目前暂不考虑。如果以后开放了中国区地图,Yahoo API 也是值得考
虑的选择。目前Yahoo地图支持静态地图生成,同时每日的同一ip的访问限制为50000次.
微软地图virtual map api功能较为全面,接口设计灵活性与可封装性也很好,同样支持静态地图服务
端生成,借助微软的MSDN社区的支持下,开发资源和文档也堪比Google Maps,但是由于此产品是微软
自有服务,保持微软一贯的风格,virtual map 官方称只支持ie6/ie7,另外在调用速度上个人感觉比
Google API 也略逊一筹。同时在本次调研时,微软的live.cn因为某些原因被GFW封掉了,因此同样影
响到了微软地图API服务ditu.live.com, 类似的事件希望以后还是少发生为妙。
部分资料来源于网络,仅供开发者参考!
2. JAVA的主要用途是哪个方面
1、Android应用
许多的 Android应用都是Java程序员开发者开发。虽然 Android运用了不同的JVM以及不同的封装方式,但是代码还是用Java语言所编写。相当一部分的手机中都支持JAVA游戏,这就使很多非编程人员都认识了JAVA。
2、在金融业应用的服务器程序
Java在金融服务业的应用非常广泛,很多第三方交易系统、银行、金融机构都选择用Java开发,因为相对而言,Java较安全 。大型跨国投资银行用Java来编写前台和后台的电子交易系统,结算和确认系统,数据处理项目以及其他项目。
3、网站
Java 在电子商务领域以及网站开发领域占据了一定的席位。开发人员可以运用许多不同的框架来创建web项目,SpringMVC,Struts2.0以及frameworks。
4、嵌入式领域
Java在嵌入式领域发展空间很大。在这个平台上,只需130KB就能够使用Java技术(在智能卡或者传感器上)。
5、大数据技术
Hadoop以及其他大数据处理技术很多都是用Java,例如Apache的基于Java的HBase和Accumulo以及 ElasticSearchas。
6、高频交易的空间
Java平台提高了这个平台的特性和即使编译,他同时也能够像 C++ 一样传递数据。正是由于这个原因,Java成为的程序员编写交易平台的语言,因为虽然性能不比C++,但开发人员可以避开安全性,可移植性和可维护性等问题。
7、科学应用
Java在科学应用中是很好选择,包括自然语言处理。最主要的原因是因为Java比C++或者其他语言相对其安全性、便携性、可维护性以及其他高级语言的并发性更好。
(2)googlemapjavaapi扩展阅读:
java的用途已经数不胜数,举不胜举,拥有着无可比拟的能力,另外在节省时间和开发费用方面也十分可观,程序员可以借助java语言,自由的使用现有的硬件和软件系统平台,因为java是独立于任何平台的。具体应用领域总结如下:
第 1 个领域、桌面应用系统开发;
第 2 个领域、嵌入式系统开发;
第 3 个领域、电子商务系统开发;
第 4 个领域、企业级应用开发;
第 5 个领域、交互式系统开发;
第 6 个领域、多媒体系统开发;
第 7 个领域、分布式系统开发;
第 8 个领域、Web应用系统开发。
网络-Java
3. 安卓开发需要学习什么
学习分三个阶段:
1,Android基础阶段:平台架构特性(JAVA/C) Market/应用程序组件 环境搭建与部署/打包与发布 AVD/DDMS/AAPT 调试与测试 相关资源访问/资源制作 Activity/Service/Broadcast Receiver/Content Provider/原理(生命周期)及深层实现
2,Android进阶初级:组件Widget/ 菜单Menu/ 布局Layout 详解 Xml解析(Pull/Dom/Sax)/JNI 解析SQL数据库原理,。
SQLite /SharedPreferences/File详解 多媒体Audio/Video/Camera 详解
3,Android进阶高级:蓝牙/WIFI SMS/MMS 应用实现 深层次解析GPS原理。
实现LocationManager/LocationProvider 进行定位/跟踪/查找/趋近警告以及Geocoder正逆向编解码等技术细节 2D图形库(Graphics/View)详解 SDCARD/传感器/手势 应用实现
(3)googlemapjavaapi扩展阅读:
知识体系
1、Unix/linux平台技术:基本命令,Linux下的开发环境
2、企业级数据库技术:SQL语言、SQL语句调优、Oracle数据库技术
3、Java 语言核心技术:Java语言基础、Java面向对象编程、JDK核心API、Java集合框架、Java网络编 程、JavaI/O编程、Java多线程编程、Java异常机制、Java安全、JDBC、XML
4、软件工程和设计模式:软件工程概述、配置管理及SVN、UML、基本设计模式
5、Android应用开发基础:Android开发平台、Eclipse+ADT开发环境、AVD及传感模拟器调试、Android核心组件、Android常用组件、Android高级组件、文件及网络访问、SQLite数据库编程、后台服务编程
6、互联网核心技术: HTML、CSS、JavaScript、JQuery、Ajax应用
7、Android高级应用开发:音频视频摄像头、互联网应用、GPS和位置服务、Google Map、2D3D绘制、传感器开发、游戏开发、电话及SMS服务、网络BluetoothWi-Fi等。
8、Android系统级开发:移植、驱动、NDK(C方向)。
9、JavaEE核心技术:Servlet核心技术、JSP核心技术、Struts、Spring、Hibernate框架。
4. 一个合格的Java开发工程师应该具备哪些技能
.CoreJava,就是Java基础、JDK的类库,很多童鞋都会说,JDK我懂,但是懂还不足够,知其然还要知其所以然,JDK的源代码写的非常好,要经常查看,对使用频繁的类,比如String,集合类(List,Map,Set)等数据结构要知道它们的实现,不同的集合类有什么区别,然后才能知道在一个具体的场合下使用哪个集合类更适合、更高效,这些内容直接看源代码就OK了2.多线程并发编程,现在并发几乎是写服务端程序必须的技术,那对Java中的多线程就要有足够的熟悉,包括对象锁机制、synchronized关键字,concurrent包都要非常熟悉,这部分推荐你看看《Java并发编程实践》这本书,讲解的很详细3.I/O,Socket编程,首先要熟悉Java中Socket编程,以及I/O包,再深入下去就是JavaNIO,再深入下去是操作系统底层的Socket实现,了解Windows和Linux中是怎么实现socket的4.JVM的一些知识,不需要熟悉,但是需要了解,这是Java的本质,可以说是Java的母体,了解之后眼界会更宽阔,比如Java内存模型(会对理解Java锁、多线程有帮助)、字节码、JVM的模型、各种垃圾收集器以及选择、JVM的执行参数(优化JVM)等等,这些知识在《深入Java虚拟机》这本书中都有详尽的解释,或者去oracle网站上查看具体版本的JVM规范.5.一些常用的设计模式,比如单例、模板方法、代理、适配器等等,以及在CoreJava和一些Java框架里的具体场景的实现,这个可能需要慢慢积累,先了解有哪些使用场景,见得多了,自己就自然而然会去用。6.常用数据库(Oracle、MySQL等)、SQL语句以及一般的优化7.JavaWeb开发的框架,比如Spring、iBatis等框架,同样他们的原理才是最重要的,至少要知道他们的大致原理。8.其他一些有名的用的比较多的开源框架和包,Netty网络框架,Apachecommon的N多包,Google的Guava等等,也可以经常去Github上找一些代码看看
5. android软件工程师需要学习什么
首先学习java,java如果搞定,android学起来会比较轻松。
android基础(Android开发环境调试,应用结构,界面组件与界面编程,四大组件)
android中级(文件IO与SQLite,图形、图像与动画、音频、视频的录制于播放,传感器编程,GPS应用)
android高级(网络编程与Web Service,OpenGL-ES 3D开发,整合Google服务,使用NDK开发,java和c相互调用)
……………………………………………………
如果对android感兴趣,看看一个中专生怎么自学android到找到工作。
我是一名中专生,在学校里读的是计算机专业,一次偶然的机会我在网上看到了一段新闻说安卓现在特别火有一年工作已经的工资可以达到8000元左右就算没工作经验起薪也有5000元,5000元对我来说简直就是个天文数字,于是我决定学习安卓,后来我到书店找了一些安卓的书但是由于基础太差,很多都看不明白,网上看到可以报培训班都是几乎每所都要上万大洋,对于我一个一个月只能赚几百元的中专生来说简直是个天文数字,后来在IT学习联盟这个网站看到了一套安卓视频叫<<安卓就业班>>(喜欢《安卓就业班》的可以复制 sina.lt/brxC 粘贴浏览器地址栏按回车键即打开)。价格还挺合理的。觉得内容挺不错的于是我决定买下来,我想既然我看书看不明白,看视频应该容易看明白吧,自从我把视频买下来后就就天天看,因为自己基础太差了,所以每天至少学习5个小时以上,那段日子真的很辛苦但又很充实,觉得我的人生最有意义的时间段。我拿到光碟后首先跟着他要求的学习顺序学习(因为他已经偏好了学习的顺序)从第一块开始到第十七块,首先学的是JAVA,是一个培训视频,总共十几G,但老师幽默风趣而又轻松的课堂教课,使我发现原来学习JAVA并不是一件很难的事情,但我的基础太差了有些地方还是不容易看懂,于是有些地方重复看了两,三篇,甚至四,五篇,大概这样过了一个月我就把JAVA给学会了,这个月因为要上班所以经常学到晚上1,2点早上6点多就起床,星期六,星期天的话就从早上看到晚上,所以有段时间眼睛经常通红通红的,但是我知道天道酬勤这个成语,你努力付出就一定得到回报的,于是我坚持了下来,到了第二阶段,学习android了,他有基础篇和深入篇,基础篇比较容易,深入篇的话还是有点难度的,但是我觉得JAVA学好了,android并不难学,学起来还觉得挺容易的,心里不由自主的笑了,觉得是不是我的付出有了回报,到了第三阶段也是最难的了,是基于linux的嵌入式,因为android的是由linux底层开发的再加上界面是JAVA,所以学好linux的嵌入式也比较重要(如果你以后想成为android内核移植这个方向走的非常重要,工资可是很高的哦,如果你只想做界面的话了解一下也不错),他首先从C语言开始教,然后到linux嵌入式,我觉得这部分太难理解了,很多都是硬着头皮看完的,因为有不地方看不明白,断断续续的来到了第四阶段项目阶段这里总共有22个大项目,一开的时候还是跟不上老师的脚步但是后来就慢慢的跟上了,我觉得项目很重要,他把之前的所有的东西都复习了一遍而且让你熟悉了真正企业项目实线,使你以后工作的时候更容易上手,学习了大概4个多月。终于学完了。就开始找工作。最后找到一份在小公司工作,待遇也有4500元,感觉还行。但是这4500元对我只有中专文聘来说已经很多很多了,我很满足了,我觉得只有肯努力,也会有成功的一天的。
………………………………………………