在 Mapbox 中获取两点之间的路线?

2023-12-30

我最近在 React Native 上使用 Mapbox gl 而不是 Google 地图, 我正在尝试添加一个功能,显示地图上从 A 点到 B 点的方向。

OR use Mapbox 路线 API https://docs.mapbox.com/help/how-mapbox-works/directions/在我的 React Native 应用程序中

这是我尝试过的代码,但在安装屏幕后,应用程序成功崩溃:D

import MapboxGL from '@react-native-mapbox-gl/maps';
import React from 'react';
import {View} from 'react-native';

MapboxGL.setAccessToken(
  '....',
);

class TwoPoints extends React.Component {
  constructor(props) {
    super(props);

    this.featureCollection = {
      type: 'FeatureCollection',
      features: [
        {
          type: 'Feature',
          id: '9d10456e-bdda-4aa9-9269-04c1667d4552',
          properties: {
            icon: 'example',
          },
          geometry: {
            type: 'Point',
            coordinates: [-73.989, 40.733],
          },
        },
        {
          type: 'Feature',
          id: '9d10456e-bdda-4aa9-9269-04c1667d4552',
          properties: {
            icon: 'airport-15',
          },
          geometry: {
            type: 'Point',
            coordinates: [-74, 40.733],
          },
        },
        {
          type: 'Feature',
          id: '9d10456e-bdda-4aa9-9269-04c1667d4552',
          properties: {
            icon: 'pin',
          },
          geometry: {
            type: 'Point',
            coordinates: [-74, 40.733],
          },
        },
      ],
    };
  }
  render() {
    return (
      <View style={{flex: 1}}>
        <MapboxGL.MapView
          ref={c => (this._map = c)}
          zoomEnabled={true}
          style={{flex: 1}}>
          <MapboxGL.ShapeSource shape={this.featureCollection}>
            <MapboxGL.SymbolLayer
              style={{iconColor: 'red'}}
              minZoomLevel={25}
            />
          </MapboxGL.ShapeSource>
        </MapboxGL.MapView>
      </View>
    );
  }
}
export default TwoPoints;

您可以从 mapbox-gl-directions 导入方向,如下所示:

import React, { useState, useRef, useCallback } from 'react'
import MapGL from 'react-map-gl'
import Directions from 'react-map-gl-directions'

// Ways to set Mapbox token: https://uber.github.io/react-map-gl/#/Documentation/getting-started/about-mapbox-tokens
const MAPBOX_TOKEN =
  'pk.eyJ1IjoiaGVucmlxdWVub2JyZSIsImEiOiJja3dkZ3c2YmoydzdhMzBvMGRtdWVnd3J2In0.xdCkUviv0yGpX-t8L7ZKQ'

const MapBox = () => {
  const [viewport, setViewport] = useState({
    latitude: -16.6906,
    longitude: -43.8054,
    zoom: 8
  })
  const mapRef = useRef()
  const handleViewportChange = useCallback(
    (newViewport) => setViewport(newViewport),
    []
  )

  const handleGeocoderViewportChange = useCallback((newViewport) => {
    const geocoderDefaultOverrides = { transitionDuration: 1000 }

    return handleViewportChange({
      ...newViewport,
      ...geocoderDefaultOverrides
    })
  }, [])

  return (
    <div style={{ height: '100%' }}>
      <MapGL
        ref={mapRef}
        {...viewport}
        width="100%"
        height="100%"
        mapStyle="mapbox://styles/mapbox/streets-v11"
        onViewportChange={handleViewportChange}
        mapboxApiAccessToken={MAPBOX_TOKEN}
      >
        <Directions
          mapRef={mapRef}
          mapboxApiAccessToken={MAPBOX_TOKEN}
          position="top-left"
          unit="metric"
          language="pt-BR"
        />
      </MapGL>
    </div>
  )
}

export default MapBox
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Mapbox 中获取两点之间的路线? 的相关文章

随机推荐

  • Android 浏览器应用程序对 URL 的最大长度有限制吗?

    有谁知道 Android 浏览器在 GET URL 中接受的字符数是否有最大限制 我假设任何限制都会转化为其他基于 WebKit 的浏览器 例如 iPhone 等 但如果有人有不同的了解 对此进行澄清也很好 None
  • Webpack 在编译 TypeScript 代码失败时导致 gulp watch 崩溃

    我正在运行一个 gulp watch 任务 它正在编译我的前端应用程序 当我遇到打字稿错误时 只是因为我太早点击保存 整个过程崩溃 我必须手动重新启动它 我希望 webpack 和 typescript 编译器只报告错误 只要它们在监视模式
  • 是否可以在 BigQuery 中将外部表转换为本机表?

    我已经从 Google Cloud Storage 创建了一个表 文件路径以 gs 开头 即使尝试多次后 我也无法将其创建为本机 我只有在将表选项设置为本机后才成功 后来我就可以成功查询到这个表了 但是 我需要执行以下操作 向表中添加一列
  • s3可容纳的最大连接数

    我正在学习亚马逊网络服务 我只是想知道 Amazon S3 在不崩溃的情况下可以同时保持的最大连接数 大约 是多少 理论上这是无限的 为了实现这一目标 他们使用了他们在此处解释的分区方案 http docs aws amazon com A
  • Xcode 无法读取当前工作目录中项目特定的 .lldbinit

    我想设置项目特定的 lldbinit 文件 以便 所有内容 都处于版本控制之下 并且可以在新计算机中轻松设置 然而似乎我只能读取 lldbinit 文件而不是任何 git project lldbinit 文件 LLDB手册说 lldb 将
  • Twitter4j。通过#hashtag进行查询和过滤帖子

    我正在尝试将 Twitter 使用 Twitter4j 集成到我的 Android 应用程序中 但我有一些顾虑 问题 我想检索具有特定 hashtag 的推文 例如 sxbsw2011 这是我当前正在使用的代码 Query query ne
  • 从绝对路径中提取相对路径

    这是一个看似简单的问题 但我很难以干净的方式完成它 我有一个文件路径如下 这个 是 一个 绝对 路径 到 我的 文件的 位置 我需要的是从上面给定的路径中提取 of my file 因为这是我的相对路径 我的想法如下 String abso
  • 需要解释一下保存分区表的kdb/q脚本

    我试图从以下位置理解这段代码 https code kx com q kb loading from large files 自己定制它 例如按小时 分钟 滴答数等分区 cat fs q d Q extension of Q dpft to
  • 如何在 Go 中使用不记名令牌发出请求

    我需要向 API 发出 GET 请求 并在授权请求中包含不记名令牌 我怎样才能在 Go 中做到这一点 我有以下代码 但没有成功 package main import io ioutil log net http func main url
  • 如何定义自定义源集而不在 Gradle 中显式定义其路径?

    说明书上是这么写的 IE 那src sourceSet java是 给定源集的 Java 源 的默认路径 如何利用这个 假设我想创建源集demo 我可以写吗 sourceSets demo java srcDir src demo java
  • 如何使用 Firestore 获取当前登录用户的文档? [复制]

    这个问题在这里已经有答案了 我的 Firestore 中有这个结构 我希望登录的用户能够获取所有图像 URL 以及与该用户 ID 关联的其他字段 例如名称 价格和描述 此信息将被加载到 recyclerView 中 这是项目模型 packa
  • 计算点向量的平均值

    我在 OpenCV 中有一个二维点的向量 std vector
  • 如何在 jquery ui 对话框中提交表单并显示其响应

    你好 我正在使用 jquery ui 对话框并尝试使用 ajax 提交表单并显示其响应 直到表单对话框和 ajax 请求其工作正常 但不知道如何在同一对话框中显示其响应 任何建议都会帮助我 假设您有以下标记 div style displa
  • 如何禁用漂亮照片?

    我现在如何启用prettyphoto 但问题是如何禁用 这里我启用了 PrettyPhoto document ready function a rel prettyPhoto prettyPhoto social tools false
  • Facebook 访问令牌无法扩展

    我正在使用 facebook android sdk 我刚刚从 github 下载了它 我了解访问令牌仅在非常有限的时间内有效 并且每次应用程序启动时都需要按照文档中的描述进行扩展 https developers facebook com
  • UIPickerView 辅助功能 VoiceOver 问题

    启用 VoiceOver 后 无论我们滑动到哪一行 UIPickerView 的画外音始终显示 Item 1 of TotalNumberOfItems 以编程方式 所有元素都会使用正确的选定索引进行更新 但 VoiceOver 始终显示
  • 如何从 C# 中的类访问表单方法和控件?

    我正在开发一个 C 程序 现在我有一个Form和几节课 我希望能够访问一些Form控件 例如TextBox 来自我的班级 当我尝试更改文本中的文本时TextBox从我的课堂上我收到以下错误 非静态字段 方法或属性 Project Form1
  • OpenCV 和像 Adob​​e Photoshop 一样的锐化遮罩

    我正在尝试像 Adob e Photoshop 中那样实现模糊遮罩 我在互联网上收集了很多信息 但我不确定我是否遗漏了一些东西 这是代码 void unsharpMask cv Mat img double amount double ra
  • 如何使用保存的 html 从 Gridstack 构建网格

    我一直在使用 Gridstack 动态创建网格 我使用以下函数来序列化网格及其数据 但我似乎不知道如何构建我的网格and它的内容来自它创建的 JSON 数组 我查过https github com troolee gridstack js
  • 在 Mapbox 中获取两点之间的路线?

    我最近在 React Native 上使用 Mapbox gl 而不是 Google 地图 我正在尝试添加一个功能 显示地图上从 A 点到 B 点的方向 OR use Mapbox 路线 API https docs mapbox com