L

landsurvey

基于ArcGIS Android 10.2.9的土地调查APP

LandSurvey 项目

基于ArcGIS Android 10.2.9开发
开发者:蒋波涛
Email:chiangbt@geoportal.cn

1、图层类型说明

天地图图层(CGCS2000)

  • TianDiTuLayerTypes
    • VEC_C,矢量图层
    • IMG_C,影像图层
    • TER_C,地形层
    • CVA_C,矢量注记层
    • CIA_C,影像注记层
    • CTA_C,地形注记层

腾讯图层

  • TencentMapLayerTypes
    • TENCENT_MAP_VECTOR,腾讯矢量层
    • TENCENT_MAP_VECTOR_NIGHT,腾讯矢量(夜晚)层
    • TENCENT_MAP_IMAGE,腾讯影像层(无路网)
    • TENCENT_MAP_ROAD,腾讯道路层
    • TENCENT_MAP_TERRAIN,腾讯地形层

Google地图层

  • GoogleMapLayerTypes
    • VECTOR_GOOGLE_MAP,谷歌矢量层
    • IMAGE_GOOGLE_MAP,谷歌影像层
    • TERRAIN_GOOGLE_MAP,谷歌地形层
    • IMAGE_ANNO_GOOGLE_MAP,谷歌影像层(含注记和路网)
    • OSM_Map,OSM数据层

GeoQ地图层

  • GeoQMapLayerTypes
    • ChinaOnlineCommunity
    • ChinaOnlineCommunity_Mobile
    • ChinaOnlineCommunityENG
    • ChinaOnlineStreetPurplishBlue
    • ChinaOnlineStreetWarm

高德数据层

  • GaodeMapLayerTypes
    • AMAP_VECTOR,高德矢量地图层
    • AMAP_IMAGE,高德影像图层(不含路网,不含注记)
    • AMAP_ROAD,高德路网图层(含路网,含注记)
    • AMAP_TRAFFIC,高德实时交通图层

百度地图

  • BaiduMapsTiledServiceLayer
    • BAIDU_VECTOR,百度矢量
    • BAIDU_IMAGE,百度影像
    • BAIDU_ROAD,百度路网
    • BAIDU_TRAFFIC,百度交通

2、基本用法

天地图2000

t_vec = new TianDiTuTiledMapServiceLayer(TianDiTuLayerTypes.VEC_C);
mapView.addLayer(t_vec);
Point initPoint = new Point(121.56, 29.862149);
mapView.zoomToResolution(initPoint, t_vec.getRes()[16]);

百度地图

目前百度地图的图层可以正确加载,但图上坐标偏移很大,需要进一步解决。
BaiduMapsTiledServiceLayer baiduMapsTiledServiceLayer = new BaiduMapsTiledServiceLayer(BaiduMapLayerTypes.BAIDU_VECTOR);
mapView.addLayer(baiduMapsTiledServiceLayer);

final float offsetX = 2518238;
final float offsetY = 910065;

Point curPt = JZLocationConverter.wgs84ToBd09(new Point(121.540614, 29.872488));
Point pt = GISHelper.lonLat2Mercator(curPt);
mapView.zoomToResolution(new Point(pt.getX() + offsetX, pt.getY() + offsetY), GoogleMapsTiledServiceLayer.getRes()[10]);

其它(以Tencent图层为例)

TencentMapsTiledServiceLayer tencentMapsTiledServiceLayer = new TencentMapsTiledServiceLayer(TencentMapLayerTypes.TENCENT_MAP_VECTOR);
mapView.addLayer(tencentMapsTiledServiceLayer);
// 经纬度坐标要转换为GCJ02后,再换成web墨卡托
Point initPoint = JZLocationConverter.wgs84ToGcj02(new Point(121.56, 29.862149));
Point pt = GISHelper.lonLat2Mercator(initPoint);
mapView.zoomToResolution(pt, tencentMapsTiledServiceLayer.getRes()[16]);

3、查询

本系统设置了三种查询POI的方式
1、天地图API检索,使用POST发送
2、高德API,使用get
3、腾讯API,使用get (http://apis.map.qq.com/ws/place/v1/suggestion/?region=北京&keyword=美食&key=OB4BZ-D4W3U-B7VVO-4PJWW-6TKDJ-WPB77)

4、示例