我们尝试过使用苹果地图,但苹果地图 SDK 不允许我们在地图上绘制折线,因此我们看到一个应用程序使用 MapBox SDK 执行类似的操作。但不幸的是,Mapbox 官方文档没有提供任何关于在 Apple WatchO 中实现 Mapbox SDK 的指南。
我们还尝试联系 Mapbox 支持,但没有得到回复,因此是否有人知道如何在 Apple watchOS 中集成 Mapbox SDK。
我正在尝试下载适用于 ios 的 Mapbox 地图 SDK,但我无法理解如何创建 .netrc 文件。我应该存储我的秘密令牌来下载 SDK,并且在我首先执行此操作之前,我无法使用 Cocoapods 添加 SDK 依赖项。有人知道该怎么做吗?
这是安装页面供参考。
https://docs.mapbox.com/ios/maps/guides/install/#add-the-dependency
.netrc 文件的格式如下:
machine api.mapbox.com
login mapbox
password <INSERT SECRET API TOKEN>
Run Code Online (Sandbox Code Playgroud)
先感谢您!
下载Mapbox示例,运行pod install,报错:403 Forbidden,为什么?请帮忙,谢谢!
\npod \'Mapbox-iOS-SDK\', \'~> 6.3.0\'
\n\n\n\xe2\x9e\x9c ios-sdk-examples-298e050be7352eb28cee6f03e02945593140c1f3 pod\ninstall 分析依赖项 下载依赖项 安装\nMapbox-iOS-SDK 6.3.0
\n[!] 安装 Mapbox-iOS-SDK 时出错 [!] /usr/bin/curl -f -L -o\n/var/folders/84/rnxy4n6d32g03yxywry6hlnx0l2qqr/T/d20210316-90167-1gkenam/file.zip\n https ://api.mapbox.com/downloads/v2/mobile-maps/releases/ios/packages/6.3.0/mapbox-ios-sdk-dynamic.zip \n--create-dirs --netrc-可选 --重试2 -A \'CocoaPods/1.10.0 cocoapods-downloader/1.4.0\'
\n% 总计 % 已接收 % Xferd 平均速度 时间 时间 时间\n当前\nDload 上传总花费左速度 0 0 0 0 0 0 0 0 --:--:-- --:--:--\n--:- -:-- 0 curl: (22) 请求的 URL 返回错误:403 Forbidden
\n
machine api.mapbox.com\n login xxx\n password xxx <sk.eyJ1IjoiY2hpYnVkb25nIiwiYSI6ImNrbWJlN2RhNzIwcTEyb210ZTRtbXM2MDAifQ.DkqGccMXylJmAG9G6OSfYg>\nRun Code Online (Sandbox Code Playgroud)\n 我想将Mapbox导航集成到iOS中,我可以轻松获取两个坐标之间的方向/路线,也可以从Mapbox获取导航路径,我们可以使用以下代码
let options = NavigationOptions(styles: nil)
let viewController = NavigationViewController(for: self.directionsRoute!)
viewController.delegate=self
self.present(viewController, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)
但是问题是我想在另一个视图控制器一部分的mapview中显示导航,我可以通过获取方向/路线和指令来做到这一点,但是找不到任何每秒都会被调用的方法,因此如果用户更改路径,我可以更新路径指令以及路径。
让我知道我是否遗漏任何东西或需要任何更改。
-提前致谢
我正在将我的应用程序移至 Mapbox,而我所坚持的事情之一是创建一条彩色多段线,其中段颜色根据速度动态设置。我能做的最接近的事情是创建一组不同颜色的线,并将它们添加到地图中,就像许多单独的线一样,但处理时间和帧速率下降太多,更不用说你可以看到不同的线段。使用 MapKit 或 Google 地图可以轻松实现这一点,但据我所知,Mapbox 中的折线只能有一种颜色。
这里有人问了一个非常类似的问题,但那是 3 年前的事了,答案似乎与使用方向 API 相关。
基本功能如下所示,我创建了一个自定义 MGLMulticolorPolyline 类,以便我可以设置颜色
func locationPolyLine(locations : [Location], averageSpeed: Double, topSpeed: Double) -> [MGLMulticolorPolyline] {
var coordinates: [(CLLocation, CLLocation)] = []
var speeds: [Double] = []
let smallerLocationArray = locations.enumerated().filter({ index, _ in
index % 2 != 0
}).map { $0.1 }
for (first, second) in zip(smallerLocationArray, smallerLocationArray.dropFirst()) {
//create an array of coordinates
let start = CLLocation(latitude: first.locLatitude, longitude: first.locLongitude)
let end = CLLocation(latitude: second.locLatitude, longitude: second.locLongitude) …Run Code Online (Sandbox Code Playgroud) 我在安装 pod 时面临以下问题。
[!] 安装 Mapbox-iOS-SDK 时出错 [!] /usr/bin/curl -f -L -o /var/folders/qn/l5lqh07s5sscfzbm1tklmzgr0000gn/T/d20200915-46243-1aqah9u/file.zip https://api .mapbox.com/downloads/v2/mobile-maps/releases/ios/packages/6.1.0/mapbox-ios-sdk-dynamic.zip --create-dirs --netrc-optional --retry 2 -A 'CocoaPods /1.9.3 cocoapods-downloader/1.4.0'
% Total % Received % Xferd 平均速度时间时间时间当前下载上传总花费左速度0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 curl: (22) 请求的 URL 返回错误:401 Unauthorized
我在主目录中添加了 .netrc 文件仍然面临问题。
Pod 错误1
我想用 Cocoapods 安装最新版本的 Mapbox。我配置.netrc文件:
machine api.mapbox.com
login mapbox
password <MY_SECRET_TOKEN>
Run Code Online (Sandbox Code Playgroud)
但是当我启动时pod install,我有这个错误:
[!] Error installing Mapbox-iOS-SDK
[!] /usr/bin/curl -f -L -o /var/folders/vq/jpt1fhxd6fx58rz9zvbdtw000000gn/T/d20200922-35020-qeu6k2/file.zip https://api.mapbox.com/downloads/v2/mobile-maps/releases/ios/packages/6.2.0/mapbox-ios-sdk-dynamic.zip --create-dirs --netrc-optional --retry 2
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 44 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
curl: (22) The requested URL returned error: 401
Run Code Online (Sandbox Code Playgroud)
如何修复此错误?
这个问题似乎并不新鲜,就像这里,但提出的解决方案没有奏效。我还尝试了其他几种方法来了解发生了什么(请参阅此处)。要复制,这是一个过程:
我有一个用 Swift 编写的有效 iOS 应用程序。
我按照说明将此应用程序与 Native React 集成此过程
我将以下依赖项添加到 package.json 中,然后运行yarn install:
"@react-native-mapbox-gl/maps":"^8.1.0-rc.9",
"prop-types": "^15.6.2",
我pod install --repo-update在 Xcode 上运行和存档。输出:此时组织者显示我的档案。
我按照此过程在 mapbox 上实现了一个基本视图
我添加到 Podfile 要求use_framework!, 如此处或之后所述use_framework!,在我点击pod install --repo-update.
我在 Xcode 上点击了存档。OUTPUT:存档已成功生成,但未显示在组织者上。如果我尝试打开它,存档已损坏。
如果我删除 mapbox 的 pod 文件并在点击 后将项目存档pod install --repo-update,则存档工作并显示在组织者中。这里同样描述。
该项目在真正的 iPhone 8 上作为调试和发布运行。Mapbox 运行良好。但是,它不适用于模拟器,也不适用于存档。我可以离开前者,但由于后者,我无法推送应用程序商店。
我不会放弃,因为 Mapbox 非常好并且提供了很多功能。会是什么呢?
react-native mapbox-gl-js mapbox-ios xcode12 mapbox-ios-maps
在我的应用程序的设置中,用户可以在 3 个系统主题之间进行选择:浅色、深色或默认(与手机的主题相匹配)。
我通过查找深色模式、浅色模式和默认keyWindow设置来实现此目的。overrideUserInterfaceStyle = .darkoverrideUserInterfaceStyle = .lightoverrideUserInterfaceStyle = .unspecified
我遇到的问题是我在我的应用程序中使用 MapBox,并且我有一个 darkStyleURL 和一个 lightStyleURL。当用户选择主题时,我会更新样式 url,如下所示:
self.styleURL = self.traitCollection.userInterfaceStyle == .dark ? URL(string: darkStyleURL) : URL(string: lightStyleURL)
但这样做的问题是,如果用户选择默认作为主题,则将traitCollection.userInterfaceStyle等于.unspecified。因此,当上面的代码触发时,即使用户的设备处于深色模式,它也会使用 lightStyleURL 。
所以我的问题是,设置后overrideUserInterfaceStyle = .unspecified是否有另一种方法来确定用户的设备主题?
或者是否有更好的方法来处理匹配设备主题或在所有三个选项之间切换的用例?任何帮助将不胜感激。谢谢!
我正在使用Mapbox创建iOS应用程序。应用程序获取对我的API的请求,该请求以JSON格式返回地图边界框内发生的许多事件。
我以前没有使用聚类,因此某些地图注释只是覆盖了其他注释。我正在使用此Mapbox教程,该教程MGLShapeCollectionFeature从GeoJSON文件创建,MGLShapeSource从形状收集功能创建,然后将标记层创建为MGLSymbolStyleLayer,将圆圈层创建为MGLCircleStyleLayer,将数字层创建为MGLSymbolStyleLayer。标记层在地理上显示每个事件,圆圈层和数字层合在一起表示每个聚类的标记数。
最终产品应类似于Mapbox示例:
此示例使用GeoJSON文件在世界地图上显示群集海港。
以下是该示例用于将上述GeoJSON转换为相关源和图层以填充地图的相关代码:
let url = URL(fileURLWithPath: Bundle.main.path(forResource: "ports", ofType: "geojson")!)
let source = MGLShapeSource(identifier: "clusteredPorts",
url: url,
options: [.clustered: true, .clusterRadius: icon.size.width])
style.addSource(source)
// Use a template image so that we can tint it with the `iconColor` runtime styling property.
style.setImage(icon.withRenderingMode(.alwaysTemplate), forName: "icon")
// Show unclustered features as icons. The `cluster` attribute is built into clustering-enabled
// source features.
let ports = MGLSymbolStyleLayer(identifier: …Run Code Online (Sandbox Code Playgroud) 我的应用程序将数据(包括坐标和其他信息)存储在本地数据库中。由于数据点的数量,该应用程序使用聚类在 iOS 上使用 Mapbox 显示数据。一些标记样式基于数据,这些数据可能会在运行时发生变化。地图设置为:
// fetch data from DB
let dataArray: [MyData] = fetchData()
// build features from data array
var features = [MGLPointFeature]()
dataArray.forEach({ (data) in
let feature = MGLPointFeature()
feature.identifier = data.id
feature.coordinate = CLLocationCoordinate2D(latitude: data.lat, longitude: data.lng)
// our attributes
feature.attributes = [
"amount": data.amount
"marked": false
]
features.append(feature)
})
// make and add source
let source = MGLShapeSource(identifier: "MySourceId", features: features, options: [
.clustered: true
])
style.addSource(source)
// regular marker layer
let layer = MGLSymbolStyleLayer(identifier: …Run Code Online (Sandbox Code Playgroud) mapbox-ios ×11
mapbox ×8
ios ×6
swift ×6
cocoapods ×2
.netrc ×1
access-token ×1
apple-watch ×1
ios-darkmode ×1
mapbox-gl ×1
mapbox-gl-js ×1
navigation ×1
react-native ×1
sdk ×1
watchkit ×1
xcode ×1
xcode12 ×1