本文主要介绍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;
(2)在run-options-application language中选择中文简体;
(3)如果(2)中可以选择中文简体则不用执行这步;
有的工程里面没有其他语言;则可在Localizations中添加;
注:
如果(3)还不可以选择中文的话, 可以新建一个OC工程(不是ionic工程哦, 用Xcode打开一个工程, 然后command+shift+n新建一个), 执行(3)中添加中文简体, 然后将最外面的zh-Hans.lproj文件夹copy到你的工程里面最外面的文件夹, 之后问题解决;值得注意的是, 执行了(3)后的添加localizations, 还得执行(2)中的切换系统语言;
附:
插件下载地址