ionic

自制cordova 逆地理编码插件(OC)

2017-03-27  本文已影响28人  火之玉

本文主要介绍iOS的逆地理定位插件, 用过官方的cordova-plugin-geolocation插件的都清楚, 该插件虽然得到了经纬度, 但是没法转换成我们想要位置信息, 于是就需要一个插件将经纬度转化为位置信息, 即逆地理编码;
1.插件介绍
该插件是用OC做的一个经纬度转换为位置的插件; OC内部通过CLGeocoder的方法实现逆地理编码;由于需要调用系统硬件, 所以该插件直到deviceready事件发生后才可用;

 document.addEventListener("deviceready", onDeviceReady, false); 
     function onDeviceReady() {
     console.log("deviceready");
 }

2.自定义插件的添加
下载好插件后, 直接添加本地目录即可;(插件最下方附上链接地址)

cordova plugin add  /Users/apple/Desktop/cordova-plugin-reverseGeocoding

3.用法实例

 document.addEventListener("deviceready", onDeviceReady, false); 
     function onDeviceReady() {
      function success(message){
            alert("定位成功:" + message);
            };
            
            function error(message){
            alert("定位失败:" + message);
            }; 
            cordova.plugins.reverseGeocoding.address([24.840882, 102.843752], success, error);
 }

4.使用说明
返回的message是一个对象, 对象的结构如下:

  // {
  //     City = "昆明市";
  //     Country = "中国";
  //     CountryCode = CN;
  //     FormattedAddressLines =     (
  //         "中国云南省昆明市呈贡区吴家营街道仕林街"
  //     );
  //     Name = "仕林街";
  //     State = "云南省";
  //     Street = "仕林街";
  //     SubLocality = "呈贡区";
  //     Thoroughfare = "仕林街";
  // }

5.要点介绍
由于系统默认的语言是英文, 有些工程返回的数据信息是英文;之前试过更改NSUserDefaults里面的AppleLanguages, 去改变系统语言, 但是估计系统做了缓存处理, 所以程序重启后才生效. 最后用了一种简便的方法来实现切换语言, 如下图所示;
(1)首先打开工程的edit scheme;


屏幕快照 2017-03-27 上午9.37.45.png

(2)在run-options-application language中选择中文简体;

屏幕快照 2017-03-27 上午9.38.09.png

(3)如果(2)中可以选择中文简体则不用执行这步;
有的工程里面没有其他语言;则可在Localizations中添加;


屏幕快照 2017-03-27 上午9.48.44.png

注:
如果(3)还不可以选择中文的话, 可以新建一个OC工程(不是ionic工程哦, 用Xcode打开一个工程, 然后command+shift+n新建一个), 执行(3)中添加中文简体, 然后将最外面的zh-Hans.lproj文件夹copy到你的工程里面最外面的文件夹, 之后问题解决;值得注意的是, 执行了(3)后的添加localizations, 还得执行(2)中的切换系统语言;

附:
插件下载地址

上一篇 下一篇

猜你喜欢

热点阅读