如何解决Mapbox:设置自定义白天和黑夜样式
我正在为iOS和Android编写导航应用程序。要求之一是能够使用备用矢量数据(客户端的许可问题)。在iOS版本中,我可以通过一次调用和内置的昼/夜设置自定义的白天和黑夜风格URI(这些样式包含替代映射数据的源条目以及其实际样式)。切换逻辑只是“做正确的事”。这是基本的iOS Swift代码:
let navigationService = MapboxNavigationService(route: route,simulating: simulate ? .always : .never)
let navigationOptions: NavigationOptions?
if !(dayStyle ?? "").isEmpty || !(nightStyle ?? "").isEmpty {
var dayUrl = dayStyle ?? ""
var nightUrl = nightStyle ?? ""
if(dayUrl.isEmpty) { dayUrl = nightUrl }
if(nightUrl.isEmpty) { nightUrl = dayUrl }
let ds = CustomDayStyle()
ds.setUrl(url: dayUrl)
let ns = CustomNightStyle()
ns.setUrl(url: nightUrl)
//****************************
// in the next line,the styles accepts an array of style instances. The style instances
// each have a "styleType" parameter that gets set to either .day or .night
//****************************
navigationOptions = NavigationOptions(styles: [ds,ns],navigationService: navigationService)
} else {
navigationOptions = NavigationOptions(navigationService: navigationService)
}
let navigationViewController = NavigationViewController(for: route,options: navigationOptions)
但是,在MapBox Android SDK中,我仅在地图对象上看到“ SetStyle”。
private void setMapStyles() {
String dayMapStyle = permitState.getDayStyleUrl();
String nightMapStyle = permitState.getNightStyleUrl();
if(dayMapStyle.length() > 0 || nightMapStyle.length() > 0) {
NavigationMapboxMap navMap = navigationView.retrieveNavigationMapboxMap();
MapboxMap map = navMap.retrieveMap();
//****************************
// would like to set both styles into the map,here
//****************************
map.setStyle(new Style.Builder().fromUri(dayMapStyle));
}
}
是否可以同时设置两种样式?如果没有,我是否可以捕捉到一个事件/替代来手动设置正确的样式?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。