如何在 Ti.map 上的苹果地图上添加“当前位置按钮”(导航标记)
Posted
技术标签:
【中文标题】如何在 Ti.map 上的苹果地图上添加“当前位置按钮”(导航标记)【英文标题】:How to add 'current location button'(navigation mark) on apple map on Ti.map 【发布时间】:2016-01-05 04:45:12 【问题描述】:我正在为我的钛金属 ios/android 使用 Ti.map
至于安卓
有自动添加当前位置按钮
(我不确定这个按钮叫什么,所以我暂时称它为“当前位置按钮”。
然而对于 iOS,
当前位置按钮不会自动添加。
有没有办法在苹果地图上添加这个按钮??
这些是我的代码。
var mapView = Map.createView(
mapType:Map.NORMAL_TYPE,
userLocation:true,
region: latitude:35.699058, longitude:139.326099,
latitudeDelta:0.01, longitudeDelta:0.01,
animate:false,
regionFit:true,
userLocation:true,
);
我看了this的文章,发现了。
- To use the `userLocation` property in iOS 8 and later, add either the
[`NSLocationWhenInUseUsageDescription`](https://developer.apple.com/library/prerelease/ios/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html#//apple_ref/doc/uid/TP40009251-SW26)
or
[`NSLocationAlwaysUsageDescription`](https://developer.apple.com/library/prerelease/ios/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html#//apple_ref/doc/uid/TP40009251-SW18)
key to the iOS plist section of the project's `tiapp.xml` file.
<ti:app>
<ios>
<plist>
<dict>
<key>NSLocationAlwaysUsageDescription</key>
<string>
Specify the reason for accessing the user's location information.
This appears in the alert dialog when asking the user for permission to
access their location.
</string>
</dict>
</plist>
</ios>
</ti:app>
所以我在我的 tiapp.xml 中添加了这个,提示警报正确显示。
但是,仍然没有出现当前位置按钮。
在iOS默认的苹果地图应用中,左下方有当前位置按钮(箭头标记)。
感谢评论。
我的第一个想法是错误的。 'userLocation:true' 与我称之为'当前位置按钮'的按钮无关
所以我手动制作了另一个按钮并连接 Ti.Geolocation。
var locationButton = Ti.UI.createButton(
backgroundImage:'/images/check.png',
right:'15dp',width:'32dp',height:'32dp'
);
mapView.add(locationButton);
locationButton.addEventListener('click',function()
Ti.API.info("get current location");
if (Ti.Geolocation.locationServicesEnabled)
Titanium.Geolocation.getCurrentPosition(function(e)
if (e.error)
Ti.API.error('Error: ' + e.error);
else
Ti.API.info(e.coords);
mapView.setLocation(
latitude:e.coords.latitude, longitude:e.coords.longitude, animate:false,
latitudeDelta:0.01, longitudeDelta:0.01
);
);
else
alert('Please enable location services');
);
现在运行良好,感谢您的帮助。
【问题讨论】:
那个不同的按钮就是你要找的那个。 android上的那个是谷歌地图的原生。所以约翰的回答其实是正确的。 啊,我看到这个按钮是只有安卓的,对吧?所以我必须自己制作另一个跳转到当前用户位置的按钮? 【参考方案1】:创建地图时,您需要设置一个额外的属性:
require('ti.map').createView(mapType:MapModule.SATELLITE_TYPE, userLocation:true);
这应该可以解决问题 ;-)
/约翰
【讨论】:
感谢您的回复!我有一些问题。 它将是 SATELLITE_TYPE 视图。无法将当前位置按钮添加到法线贴图?即使我添加此代码 userLocation 按钮也没有出现,MapModule.SATELLITE_TYPE 是 Map.SATELLITE_TYPE 的错字?? 谢谢给我提示,我想出了如何整合我想要的东西。 @whitebear:是的,你可以使用任何你想要的 mapType。这只是我在代码中复制的示例。抱歉,我没有指出这一点:-)以上是关于如何在 Ti.map 上的苹果地图上添加“当前位置按钮”(导航标记)的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Android Marshmallow 上的 Google 地图上显示当前位置?