gaodemap


高德地图插件功能,用户需要到高德地图开发平台上,申请高德地图appKeyhttp://lbs.amap.com/dev/#/进行注册。

如何创建应用

一、访问http://lbs.amap.com/dev/#/,使用高德开发者账号登陆(若不是开发者账号,则会提醒认证成为开发者)。如下图所示。点击创建应用按钮。如下图:
image
二、点击上图创建应用按钮,输入应用名称,并且选择应用类型然后点击创建按钮,显示如下图所示。
image
三、选择下图中"添加新key"按钮。
image
四、
1.(Android平台)在下图中输入相应的信息。
image
由于现有平台存在HDE和APPLoader模式,其中HDE模式是用控制台打包,appLoader模式使用ide打包,因此可能SHA1值存在不同。 提供两种方法获得sha1值
方法一,通过平台API获得(可以参考app的api文档)。如下图所示:
image
方法二: 通过命令获得sha1值。 首先用平台生成一个”平台.apk”。在dos里输入如下代码如:
image
keytool -printcert -jarFile /.../.../平台.apk。就会获得sha1值。其中“/.../.../“表示平台.apk路径。
2.(iOS平台)在下图中输入相应的信息。
image
获取安全码 iOS SDK中,安全码对应Bundle Indentifier,有两种获取方式。
方法一:通过代码获取,输入如下代码如:

   NSString *bundleIdentifier = [[NSBundle mainBundle] bundleIdentifier];

方法二:Xcode切换到General标签,查看Bundle Identifier,如下图所示:
image
五、提交成功之后,就生成了高德地图的key,如下图所示。
image

配置:

为使得应用可以启动高德地图,并与之交换数据,同时可以从高德地图返回到应用,需要配置pluginConfigs文件的config.(注:当申请的key成功之后,用户将key填写到pluginConfigs.xml配置文件中.)

配置示例:
 <configs>
 <config pluginName="amap">
    <android>
        <param key="GAODE_MAP_NAME" value="com.amap.api.v2.apikey"></param>
  <!--其中只需要把value=”key”这里的key修改成你申请的key即可-->
    <param key="GAODE_MAP_KEY" value="key"></param>
    </android>
   </config>
 </configs>

回调状态常量(Number):

地图类型(Number):

  • rd.amap.RDAMapTypeStandard : 普通地图,值为0
  • rd.amap.RDAMapTypeSatellite : 卫星地图,值为1

追踪用户位置模式(Number):

备注:Android不支持

  • rd.amap.RDUserTrackingModeNone : 不追踪用户的location更新,值为0
  • rd.amap.RDUserTrackingModeFollow : 追踪用户的location更新,值为1
  • rd.amap.RDUserTrackingModeFollowWithHeading : 追踪用户的location与heading更新,值为2

方法:

回调方法:

rd.amap.regionWillChange


地图区域即将改变

返回内容:

rd.amap.regionDidChange


地图区域改变完成后

返回内容:

rd.amap.didSingleTappedAtCoordinate


单击地图底图

返回内容:
{latitude: Number, longitude: Number}//经纬度

rd.amap.didLongPressedAtCoordinate


长按地图底图

返回内容:
{latitude: Number, longitude: Number}//经纬度

rd.amap.calloutAccessoryControlTapped


标注view的accessory view被点击

返回内容:
{index: String}//标注索引

rd.amap.didAnnotationViewCalloutTapped


标注view的calloutview整体点击

返回内容:
{index: String}//标注索引

rd.amap.willStartLocatingUser


地图View将要启动定位

返回内容:

rd.amap.didStopLocatingUser


地图View停止定位

返回内容:

rd.amap.didUpdateUserLocation


位置或者设备方向更新

返回内容:
{latitude: Number, longitude: Number}//经纬度

rd.amap.didFailToLocateUserWithError


定位失败

返回内容:

rd.amap.didChangeUserTrackingMode


userTrackingMode改变

返回内容:
{userTrackingMode: int}//改变的userTrackingMode

initAmap


初始化高德地图

rd.amap.initAmap(appkey,callback);
说明:

初始化高德地图

参数:
  • appkey: (String) 必选 申请应用时的appkey
  • callback: (stateCallback) 必选 回调方法名
    返回值:
    无返回值
示例代码:
function stateCallback(state, info){
    alert(info);
}
rd.amap.initAmap("appkey",stateCallback);

showMap


显示地图

rd.amap.showMap(frame);
说明:

显示地图View

参数:
  • frame: (json对象) 必选 地图view的位置和大小 {
      x: (*Number*)//x坐标
      y: (*Number*)//y坐标
      width: (*Number*)//宽度
      height: (*Number*)//高度
    
    }
返回:

回调:

示例代码:
rd.amap.showMap({x:0, y:0, width:100, height:100});

hideMap


隐藏地图view

rd.amap.hideMap();
说明:

隐藏地图view,隐藏后可使用showMap方法重新显示,地图不会重新初始化

参数:

返回:

回调:

示例代码:
rd.amap.hideMap();

removeMap


删除地图view

rd.amap.removeMap();
说明:

删除地图view,删除后需重新调用初始化方法才能显示。 注意:页面关闭时需要调用该方法移除地图对象

参数:

返回:

回调:

示例代码:
rd.amap.removeMap();

clearMap


清除地图上的标注和覆盖层

rd.amap.clearMap();
说明:

清除地图上的标注和覆盖层

参数:

返回:

示例代码:
rd.amap.clearMap();

setMapType


设置地图显示类型

rd.amap.setMapType(type);
说明:

设置地图显示类型

参数:
示例代码:
 rd.amap.setMapType(rd.amap.RDAMapTypeSatellite);

showTraffic


是否显示交通

rd.amap.showTraffic(param);
说明:

是否显示交通,默认为NO

参数:
  • param: (Boolean)必选 是否显示
    返回:
示例代码:
rd.amap.showTraffic(true);

setScrollEnabled


是否支持平移

rd.amap.setScrollEnabled(param);
说明:

是否支持平移,默认为YES

参数:
  • param: (Boolean)必选 是否支持
    返回:
示例代码:
rd.amap.setScrollEnabled(true);

setZoomEnabled


是否支持缩放

rd.amap.setZoomEnabled(param);
说明:

是否支持缩放,默认为YES

参数:
  • param: (Boolean)必选 是否支持
    返回:
示例代码:
   rd.amap.setZoomEnabled(true);

showsCompass


是否显示罗盘

rd.amap.showsCompass(param);
说明:

是否显示罗盘,默认为显示

参数:
  • param: (Boolean)必选 是否显示
    返回:
    回调:
示例代码:
rd.amap.showsCompass(true);

setCompassPosition


罗盘原点位置

rd.amap.setCompassPosition(x, y);
说明:

设置罗盘原点位置,iOS默认为地图右上角,Android不支持该功能,默认显示在左上角

参数:
  • x: (Number)必选 x坐标
  • y: (Number)必选 y坐标
    返回:
    回调:
示例代码:
rd.amap.setCompassPosition(x, y);

showsScale


是否显示比例尺

rd.amap.showsScale(param);
说明:

是否显示比例尺,默认为显示

参数:
  • param: (Boolean)必选 是否显示
    返回:
    回调:
示例代码:
rd.amap.showsScale(true);

setScalePosition


比例尺原点位置

rd.amap.setScalePosition(x,y);
说明:

设置比例尺原点位置,iOS默认在地图左上角,Android不支持设置功能,默认显示在左下角

参数:
  • x: (Number)必选 x坐标
  • y: (Number)必选 y坐标
    返回:
    回调:
示例代码:
rd.amap.setScalePosition(x,y);

metersPerPointForCurrentZoomLevel


在当前缩放级别下, 基于地图中心点, 1个屏幕像素单元对应的真实距离(单位是米).

rd.amap.metersPerPointForCurrentZoomLevel();
说明:

在当前缩放级别下, 基于地图中心点, 1个屏幕像素单元对应的真实距离(单位是米).

参数:

返回:

(Number) 对应的距离(单位是米)

示例代码:
rd.amap.metersPerPointForCurrentZoomLevel();

metersPerPointForZoomLevel


在指定的缩放级别下, 基于地图中心点, 1个屏幕像素单元对应的真实距离(单位是米).

rd.amap.metersPerPointForZoomLevel(zoomLevel);
说明:

在指定的缩放级别下, 基于地图中心点, 1个屏幕像素单元对应的真实距离(单位是米).

参数:
  • zoomLevel: (Number)必选 zoomLevel 指定的缩放级别
    返回:
    (Number) 对应的距离(单位是米)
示例代码:
rd.amap.metersPerPointForZoomLevel(zoomLevel);

getCenterCoordinate


获取当前地图的中心点经纬度坐标

rd.amap.getCenterCoordinate();
说明:

获取当前地图的中心点经纬度坐标

参数:

返回:

(json对象) 经纬度坐标,{latitude: (Number), longitude: (Number)}

示例代码:
rd.amap.getCenterCoordinate();

setCenterCoordinate


设定地图中心点经纬度

rd.amap.setCenterCoordinate(centerCoordinate, animated);
说明:

设定地图中心点经纬度

参数:
  • centerCoordinate: (json)必选 要设定的地图中心点经纬度 {
      latitude: (*Number*), 
      longitude: (*Number*)
    
    }
  • animated: (Boolean)必选 是否采用动画效果

    返回:

    示例代码:
    rd.amap.setCenterCoordinate({latitude: 39.905501, longitude: 116.394505}, true);
    

getRegion


当前地图的经纬度范围

rd.amap.getRegion();
说明:

当前地图的经纬度范围,设定的该范围可能会被调整为适合地图窗口显示的范围

参数:

返回:

(json对象) 经纬度和范围信息,{latitude: (Number), longitude: (Number), latitudeDelta: (Number), longitudeDelta: (Number)}

示例代码:
rd.amap.getRegion();

setRegion


设定当前地图的region

rd.amap.setRegion(region, animated);
说明:

设定当前地图的region

参数:
  • region: (json对象)必选 经纬度和范围信息 {latitude: (Number), longitude: (Number), latitudeDelta: (Number), longitudeDelta: (Number)}
  • animated: (Boolean)必选 是否采用动画效果
    返回:
示例代码:
   rd.amap.setRegion({latitude: 39.905501, longitude: 116.394505, latitudeDelta: 0.04, longitudeDelta: 0.04}, true);

getZoomLevel


获取地图缩放级别

rd.amap.getZoomLevel();
说明:

获取地图缩放级别

参数:

返回:

(Number) 缩放级别

示例代码:
rd.amap.getZoomLevel();

setZoomLevel


设置地图缩放级别

rd.amap.setZoomLevel(zoomLevel, animated);
说明:

设置地图缩放级别, 缩放级别的范围[3,20]

参数:
  • zoomLevel: (Number)必选 缩放级别
  • animated: (Boolean)必选 是否采用动画效果
    返回:
示例代码:
  rd.amap.setZoomLevel(10, true);

convertCoordinate


将经纬度坐标转化为相对于地图view的坐标

rd.amap.convertCoordinate(coordinate);
说明:

将经纬度坐标转化为相对于指定view的坐标

参数:
  • coordinate: (json对象)必选 要转化的经纬度坐标 {latitude: (Number), longitude: (Number)}
    返回:
    (json对象) 转换后的坐标 {x: (Number), y: (Number)}
示例代码:
rd.amap.convertCoordinate({latitude: 39.905501, longitude: 116.394505});

convertPoint


将相对于地图view的坐标转化为经纬度坐标

rd.amap.convertPoint(point);
说明:

将经纬度坐标转化为相对于指定view的坐标

参数:
  • point: (json对象)必选 要转化的坐标 {x: (Number), y: (Number)}
    返回:
    (json对象) 转换后的坐标 {latitude: (Number), longitude: (Number)}
示例代码:
rd.amap.convertPoint({x: 50, y: 50});

showsUserLocation


设置是否显示用户位置

rd.amap.showsUserLocation(param);
说明:

设置是否显示用户位置,默认不显示

参数:
  • param: (Boolean)必选 是否显示
    返回:
    示例代码:
    rd.amap.showsUserLocation(true);

setUserTrackingMode


设置追踪用户位置的模式

rd.amap.setUserTrackingMode(mode, animated);
说明:

设置追踪用户位置的模式 Android不支持该功能

参数:
示例代码:
 rd.amap.setUserTrackingMode(rd.amap.RDUserTrackingModeFollowWithHeading, true);

getUserLocation


获取当前的位置数据

rd.amap.getUserLocation();
说明:

获取当前的经纬度数据

参数:

返回:

(json对象) 用户的经纬度 {latitude: (Number), longitude: (Number)}

示例代码:
rd.amap.getUserLocation();

getUserLocationVisible


当前位置在地图中是否可见

rd.amap.getUserLocationVisible();
说明:

当前位置再地图中是否可见

参数:

返回:

(Boolean) 是否可见

示例代码:
rd.amap.getUserLocationVisible();

getAnnotations


获取所有标注

rd.amap.getAnnotations();
说明:

获取地图上所有标注

参数:

返回:

(json对象) 所有标注经纬度信息数组 [{latitude: (Number), longitude: (Number)}, {latitude: (Number), longitude: (Number)}, {latitude: (Number), longitude: (Number)}]

示例代码:
rd.amap.getAnnotations();

addAnnotation


向地图窗口添加标注

rd.amap.addAnnotation(annotation);
说明:

向地图窗口添加标注

参数:
  • annotation: (json对象)必选 标注数据 {

      latitude: (*Number*), //经度
      longitude: (*Number*), //纬度
      title: (*String*), // 标题
      subtitle: (*String*) //子标题
    

    }

    返回:

    (String) 标注的索引值

    示例代码:

    rd.amap.addAnnotation({latitude: 39.905501, longitude: 116.394505, title: "title", subtitle:"subtitle"});

removeAnnotation


移除标注

rd.amap.removeAnnotation(index);
说明:

移除指定标注

参数:
  • index: (String)必选 标注索引
    返回:
示例代码:
rd.amap.removeAnnotation("1");

clearAnnotations


移除所有标注

rd.amap.clearAnnotations();
说明:

移除所有标注

参数:

返回:

示例代码:
rd.amap.clearAnnotations();

getAnnotationVisibleRect


获取标注可见区域

rd.amap.getAnnotationVisibleRect();
说明:

获取标注可见区域 Android不支持

参数:

返回:

(json对象) 可见区域rect {x: (Number), y: (Number), width: (Number), height: (Number)}

示例代码:
rd.amap.getAnnotationVisibleRect();

showAnnotations


设置地图使其可以显示数组中所有的标注

rd.amap.showAnnotations(annotations, animated);
说明:

设置地图使其可以显示数组中所有的标注

参数:
  • annotations: (json对象)必选 所有标注索引数组 [{index: (String)},{index:(String)},{index:(String)}]
  • animated: (Boolean)必选 是否采用动画效果
    返回:
示例代码:
rd.amap.showAnnotations([{index: "Annotation0"},{index:"Annotation1"}], true);

addOverlayCircle


向地图窗口添加圆形覆盖层

rd.amap.addOverlayCircle(circle);
说明:

向地图窗口添加圆形覆盖层 r,g,b,a的取值范围[0,255]

参数:
  • circle: (json对象)必选 圆形信息 {
      latitude:(*Number*),// 纬度
      longitude:(*Number*),//经度
      radius:(*Number*),//半径,单位为米
      lineWidth:(*Number*),//线宽
      strokeColor:{ //边线颜色 RGB
          r: (*Number*),
          g: (*Number*),
          b: (*Number*),
          a: (*Number*),
      },
      fillColor:{ //填充颜色 RGB
          r: (*Number*),
          g: (*Number*),
          b: (*Number*),
          a: (*Number*),
      }
    
    }
    返回:
  • index: (String) 覆盖层索引
示例代码:
rd.amap.addOverlayCircle({
    latitude: 39.905501, 
    longitude: 116.394505,
    radius:10,
    lineWidth:2,
    strokeColor:{
        r: 255,
        g: 0,
        b: 0,
        a: 255,
    },
    fillColor:{ //填充颜色 RGB
        r: 0,
        g: 255,
        b: 0,
        a: 255,
    }
});

addOverlayPolyline


向地图窗口添加折线覆盖层

rd.amap.addOverlayPolyline(polyline);
说明:

向地图窗口添加折线覆盖层 r,g,b,a的取值范围[0,255]

参数:
  • polyline: (json对象)必选 折线信息 {
      lineWidth:(*Number*),//线宽
      strokeColor:{ //边线颜色 RGB
          r: (*Number*),
          g: (*Number*),
          b: (*Number*),
          a: (*Number*),
      },
      coordinates: //画线点的经纬度数组
          [{latitude:(*Number*),longitude:(*Number*)},
           {latitude:(*Number*),longitude:(*Number*)},
           {latitude:(*Number*),longitude:(*Number*)}...]
    
    }
    返回:
  • index: (String) 覆盖层索引
示例代码:
rd.amap.addOverlayPolyline({
    lineWidth:2,
    strokeColor:{
        r: 255,
        g: 0,
        b: 0,
        a: 255,
    },
    coordinates:
        [{"latitude": 36,"longitude": 110},
        {"latitude": 39,"longitude": 112},
        {"latitude": 39,"longitude": 110}]
});

addOverlayPolygon


向地图窗口添加闭合多边形覆盖层

rd.amap.addOverlayPolygon(Polygon);
说明:

向地图窗口添加闭合多边形覆盖层 r,g,b,a的取值范围[0,255]

参数:
  • Polygon: (json对象)必选 闭合多边形信息 {
      lineWidth:(*Number*),//线宽
      strokeColor:{ //边线颜色 RGB
          r: (*Number*),
          g: (*Number*),
          b: (*Number*),
          a: (*Number*),
      },
      fillColor:{ //填充颜色 RGB
          r: (*Number*),
          g: (*Number*),
          b: (*Number*),
          a: (*Number*),
      },
      coordinates: //画线点的经纬度数组
          [{latitude:(*Number*),longitude:(*Number*)},
           {latitude:(*Number*),longitude:(*Number*)},
           {latitude:(*Number*),longitude:(*Number*)}...]
    
    }
    返回:
  • index: (String) 覆盖层索引
示例代码:
rd.amap.addOverlayPolygon({
    lineWidth:2,
    strokeColor:{
        r: 255,
        g: 0,
        b: 0,
        a: 255,
    },
    fillColor:{
        r: 0,
        g: 255,
        b: 0,
        a: 255,
    },
    coordinates:
        [{"latitude": 35,"longitude": 109},
        {"latitude": 36,"longitude": 109},
        {"latitude": 36,"longitude": 112},
        {"latitude": 35,"longitude": 112}]
});

removeOverlay


移除指定覆盖层

rd.amap.removeOverlay(index);
说明:

移除指定覆盖层

参数:
  • index: (String)必选 覆盖层索引
    返回:
示例代码:
rd.amap.removeOverlay("0");

clearOverlays


移除所有覆盖层

rd.amap.clearOverlays();
说明:

移除所有覆盖层

参数:

返回:

示例代码:
rd.amap.clearOverlays();

setDistanceFilter


设定定位的最小更新距离。

rd.amap.setDistanceFilter(distance);
说明:

设定定位的最小更新距离。 Android不支持该功能

参数:
  • distance: (Number)必选 最小更新距离,单位为米
返回:

示例代码:
rd.amap.setDistanceFilter(1);

setDesiredAccuracy


设定定位精度

rd.amap.setDesiredAccuracy(accuracy);
说明:

设定定位精度

参数:
  • accuracy: (Number)必选 经度值
  • 返回:

示例代码:
rd.amap.setDesiredAccuracy(1);

setHeadingFilter


设定最小更新角度

rd.amap.setHeadingFilter(heading);
说明:

设定最小更新角度,默认为1度 Android不支持该功能

参数:
  • heading: (Number)必选 最小更新角度
    返回:
示例代码:
rd.amap.setHeadingFilter(1);

setPausesLocationUpdatesAutomatically


指定定位是否会被系统自动暂停。默认为false

rd.amap.setPausesLocationUpdatesAutomatically(param);
说明:

指定定位是否会被系统自动暂停。默认为false Android不支持该功能

参数:
  • param: (Boolean)必选 否会被系统自动暂停
    返回:
示例代码:
rd.amap.setPausesLocationUpdatesAutomatically(true);

setAllowsBackgroundLocationUpdates


是否允许后台定位。默认为false

rd.amap.setAllowsBackgroundLocationUpdates(param);
说明:

是否允许后台定位。默认为false Android不支持该功能

参数:
  • param: (Boolean)必选 是否允许后台定位
    返回:
示例代码:
rd.amap.setAllowsBackgroundLocationUpdates(true);

stateCallback


状态回调.

function stateCallback(state, info){
    alert(info);
}
说明:

地图状态的回调方法,并返回回调状态和消息内容。

参数:
  • state: ( 回调状态常量 ) 必选 回调的状态
  • info: ( json对象 ) 回调方法返回的内容,视具体状态而定