react-native-mapbox-gl 的使用介绍
1.背景
在进行开发地图的时候,老项目使用的国内的 ract-native-amap 高德 sdk, 随着业务的发展,与使用要求精度提高,加上与 web 端定制的地图天地图 与高德 sdk 地图精度不一样,坐标需要转换,会出现坐标精度丢失,需要进行改造地图模块的改造,
2. SDK 的选择
在市面上常见的几个厂商地图商,国内有,高德, 百度,腾讯,要使用天地图所以放弃国内的,国外不太了解知道有 Google Map 和 mapbox , Esri ArcGIS,CartoDB,google map 某些原因无法使用,esri 对 react-native 的支持非常局限,所以最后选择了 mapbox 使用。
这里提一句 最开始改造时,没有考虑会单独使用一些定制地图 坐标系为 epsg:4490 的地图,mapbox 无法支持 4490 的坐标系,范围是全球范围,在使用自定义地图的时候,大小范围某部分的切片。
3. react-native-mapbox-gl 引用
rn 版本的 mapbox 从 v7 版本分为了两个库 nitaliano/react-native-mapbox-gl: A Mapbox GL react native module for creating custom maps (github.com) 和 rnmapbox/maps: A Mapbox react native module for creating custom maps (github.com)。重要区别在于对 react native 的版本支持, nmapbox 这个里面版本功能最新。
直接运行 ❯ npm i @mapbox/react-native-mapbox-gl ,进行安装,之后需要在 Android ios 目录下分别处理
a. Android
需要运行下 npx link @mapbox/react-native-mapbox-gl ,进行依赖,具体会自动处理,如果无法自动,就需要手动处理
b. ios
在 podfile 添加 pod 'react-native-mapbox-gl', :path => '../node_modules/@mapbox/react-native-mapbox-gl' 并运行 pod i
在 app 入口 路由处,添加 MapboxGL.setAccessToken(MAPBOX_DOWNLOADS_TOKEN); MAPBOX_DOWNLOADS_TOKEN 为申请的 key
4. mapbox 的使用
1. 地图显示
5 结束
mapbox 使用还是非常简单的,具体可以看下文档 。但是要注意的是,mapbox 不能使用自定义发布地图,或者发布图层需要和天地图级别一样。
版权声明: 本文为 InfoQ 作者【三爻】的原创文章。
原文链接:【http://xie.infoq.cn/article/c98a78bd836b2a7fb66c2fe7d】。文章转载请联系作者。
评论