首页 \ 问答 \ 在Mapbox中,如何从iOS上的样式切换图层?(In Mapbox how can you toggle layers from a style on iOS?)

在Mapbox中,如何从iOS上的样式切换图层?(In Mapbox how can you toggle layers from a style on iOS?)

我试图在iOS中为MapBox切换图层,但无法弄清楚它是如何完成的。 我一直在看这个例子:

https://www.mapbox.com/mapbox.js/example/v1.0.0/layers/

但我无法弄清楚如何在Xcode中将这个文件与地图视图一起使用。 任何人都可以给我任何有关如何完成的信息? 或者是否有可能?

只是一些背景设置,我有一个mapview创建和运行良好。 然后我有许多GPX路径已经导出到TileSets并添加到一个样式作为一个层。 我有一个名为'where_trail'的图层,我想用按钮打开和关闭。 目前,所有图层都在地图上绘制,我无法弄清楚如何访问图层并隐藏它们。 任何人都可以为我提供一些指导吗?

谢谢


I'm trying to toggle layers in iOS for MapBox but can't figure out how it's done. I've been looking at this example:

https://www.mapbox.com/mapbox.js/example/v1.0.0/layers/

But I can't figure out how to use this file with the map view in Xcode. Can anyone give me any info on how this is done? Or whether it's possible?

Just a bit of background on the setup, I have a mapview created and running fine. I then have numerous GPX trails which have been exported in to TileSets and added to a style as a layer. I have a layer called 'where_trail' which I want to toggle on and off with a button. Currently all the layers are drawing on the map, I just can't figure out how to access the layers and hide them. Can anyone offer me some guidance on this please?

Thanks


原文:https://stackoverflow.com/questions/40175408
更新时间:2019-10-10 04:05

最满意答案

该示例适用于Mapbox.js并使用JavaScript编写:它适用于我们的JavaScript框架,如果您使用的是Swift,Objc和Xcode,则不是您正在使用的框架。

目前还没有完整的iOS框架切换样式示例,但要注意的属性是styleURL - 您可以将该地图属性的值分配给新的NSURL,您可以从Studio或从默认的风格。 将其连接到一个动作,它应该完全符合您的要求。


That example is for Mapbox.js and written in JavaScript: it's intended for use with our JavaScript framework, which, if you're in Swift, Objc, and Xcode, is not what you're using.

There isn't yet a full-fledged example of switching styles for the iOS framework, but the property to pay attention to is the styleURL - you can assign the value of that map property to a new NSURL, which you can get from Studio or from a default style. Wire this up to an action and it should do exactly what you're looking for.

2016-10-21

相关问答

更多

使用MapBox GL的数据驱动的地图(具有基本地图和快速的等值线)(Data Driven Maps using MapBox GL (choropleth with base map and fast))

这不包括所有的油漆和布局属性(并且完整的数据驱动样式正在积极地在这里工作: https : //github.com/mapbox/mapbox-gl-js/pull/1932 )但是... 如果您将GeoJSON文档上传到Mapbox帐户,它将转换为矢量切片。 然后,您可以在style.load事件之后将其添加为它自己的style.load : map.on('style.load', function() { map.addSource('SOURCENAME', { "type

如何将存储为变量的图层添加到mapbox地图中(How to add Layer stored as variable to mapbox map)

geoJsons[layer] = L.mapbox.featureLayer().addTo(map); 你在这里做的是覆盖使用L.mapbox.featureLayer的新实例存储的L.mapbox.featureLayer 。 存储的图层可以通过geoJsons[layer]访问(假设layer变量包含字符串myLayer或secondLayer ),您可以通过简单地调用它的addTo方法来添加它,如下所示: geoJsons[layer].addTo(map); //or map.a

将自定义地图样式添加到Mapbox.js(Add custom map style to Mapbox.js)

对不起,但那不行。 Mapbox样式适用于Mapbox GL以及原生iOS和Android SDK。 您不能将它们与经典的Mapbox JS一起使用。 Mapbox JS支持光栅图块,你无法设置那些样式。 他们只是图像。 Mapbox GL和原生SDK(可以)使用矢量切片,并且可以设置样式。 如果要创建用于Mapbox JS的自定义tileset,可以使用Mapbox Studio Classic执行此操作。 https://www.mapbox.com/studio/classic/styles ...

default_marker是否已从mapbox-gl.js中删除(Was default_marker removed from mapbox-gl.js)

为改变道歉,ongle! 我们最近致力于标准化 所有Mapbox样式中可用 的图标 ,遗憾的是, 这些图标需要进行一些重大更改。 default_marker最接近的替换是marker-15 。 每种风格的标记外观都不同。 您也可以选择按照本指南上传自己的标记图像 。 Apologies for the change, ongle! We've recently worked to standardize the icons available across all the Mapbox sty

mapbox strip-frameworks.sh:没有这样的文件或目录(mapbox strip-frameworks.sh: no such file or directory)

在手动安装文档中,配置Xcode需要遵循一个步骤。 确定你遵循了这些步骤 将Mapbox.framework拖到项目编辑器中的项目的嵌入式二进制文件部分 单击顶部的+按钮并选择“新建运行脚本阶段” 以下是其他一些可能有用的讨论,但一般来说,原始链接中的“手动”步骤应起作用。 https://github.com/mapbox/mapbox-gl-native/issues/4729 https://github.com/mapbox/mapbox-gl-native/blob/master/pl

Mapbox:如何解决map.addSource()中的CORS问题(Mapbox: How to solve CORS issue in map.addSource())

这取决于地图框。 他们的服务器正在说你所查询的来源是不允许的政策(检查选项请求中的标题)。 由于他们的策略不支持Access-Control-Allow-Origin标头,因此XHR向mapbox.com发出的任何请求都必须来自mapbox.com。 现在,您可以想象通过在本地虚拟机上使用代理服务器来假装您位于mapbox.com上 - 使用HaProxy容器 (例如,在Virtual Box上)以及在其配置中设置指向某些请求的ACL到mapbox.com到你的代码,其余的到mapbox.com

在Leaflet中打开和关闭图层(更复杂的场景)(Toggle layers on and off in Leaflet (more complex scenario))

编辑: 既然你澄清了你想要打开/关闭整个集合 ,它就更简单了(而且几乎就像你通过将你的L.geoJson分配给var layers ),但是你必须处理异步过程 。 要避免此问题,您可以执行以下操作: var myLayerGroup = L.layerGroup(), // do not add to map initially. overlays = { "Merged GeoJSON collections": myLayerGroup }; L.contr

应用程序是Android背景后,Mapbox保持GPS锁定(Mapbox keeps GPS Lock after app is the background on Android)

在生命周期方法onResume / onPause中,您似乎不必禁用MyLocationOverlay。 Mapbox SDK似乎可以为您处理。 It seems you don't have to disable the MyLocationOverlay when in the lifecycle methods onResume/onPause. The Mapbox SDK seems to handle that for you.

相关文章

更多

最新问答

更多
  • 使用javascript为用户延迟加载内容的更好方法是什么?(What is a better way to lazy load content for users with javascript?)
  • 如何修复无法将类型的值...转换为预期的参数类型inout _(How to fix Cannot convert value of type … to expected argument type inout _)
  • 从哪里开始解析JSON?(Where to start with parsing JSON?)
  • Mail.php不适用于.htaccess(Mail.php doesn't work with .htaccess)
  • 使用htaccess设置子域(Setting subdomains using htaccess)
  • mod_pagespeed和java应用服务器(mod_pagespeed and java app servers)
  • Win32:如何崩溃?(Win32: How to crash?)
  • FFmpeg中RGB到YUV转换的错误(Error in RGB to YUV conversion in FFmpeg)
  • 如何在Android中首次打开应用时创建弹出窗口?(How to create pop-up when first open app in Android?)
  • 通过动态传递表名和列名来反转COLUMN DATA(Reversing COLUMN DATA by dynamically passing table name and Column Name)
  • 如何计算C#中ICollection中有多少元素?(How can I count how many elements are in an ICollection in C#)
  • 从pg-promise查询中获得结果(get result out of a pg-promise query)
  • 使用管理器注册一个类,然后调用子类重写方法(Register a class with a manager, then call the sub classes overridden methods)
  • 传递&在查询字符串中(Passing & in query string)
  • 谷歌浏览器打印预览不会第一次加载页面(google chrome print preview does not load the page the first time)
  • FsLexYacc:Tests / MiniProject“在.fsproj中导入错误”(FsLexYacc : Tests/MiniProject “incorrect Import in .fsproj”)
  • 创建一个模型方法,计算用户的帖子并在rspec(Rails)中测试?(Create a model method that counts a user's posts and test in rspec (Rails)?)
  • 记录线程的奇怪行为(Strange behaviour of logging thread)
  • 移动数组中的索引(Moving indices in an array)
  • MVC 5 - > MVC 5.1迁移。(MVC 5 -> MVC 5.1 Migration. Intellisense issues)
  • 使用函数在z3中创建列表(Creating List in z3 using function)
  • 如何进行html随机重定向(How to make a html random redirect)
  • 角度js:使用角度过滤器分割日期,月份和时间(Angular js: spliting date,month and time using angular filter)
  • 将所有模块导入一个文件夹,并按其属性之一使用它们(Import all modules in one folder and use them by one of its attributes)
  • 只需要在git的当前分支上获得合并列表(Just get list of merge happened on my current branch in git)
  • React-Native导入库并在多个组件中可用(React-Native import a library and make available in multiple components)
  • 如何使用jQuery为固定(偏移)位置设置div动画?(How to animate div for a fixed (offset) position using jQuery?)
  • operator ==和vector confusion(operator== and vector confusion)
  • 如何获取所选图像映射alt值?(How to get selected image map alt value?)
  • 在角度,如何使用取消用户事件的美元间隔,如页面更改?(In angular, how to use cancel an $interval on user events, like page change?)