mapbox-developer-group / Mapbox-Tech-Q-A

在提问之前请自行查看文档哦,养成好习惯:https://docs.mapbox.com/
32 stars 1 forks source link

[IOS] 怎样单独加载文本标签? #30

Open songyuyang0918 opened 4 years ago

songyuyang0918 commented 4 years ago

我拥有一个点坐标 和 一串文字, 我该怎样把它单独加载地图上? 它不是一个geojson格式, 我想我不能使用MGLSymbolStyleLayer. 我有很多这样的数据, 该怎样单独加载它?

canglaoshidaidui commented 4 years ago

在android里大概有二种方法。少量数据可以通过marker的办法加上去,数据量稍微大些还是要过geojson的方法,不是geojson格式没关系,自己构建出来吧。 主要还是看数据量。。。

goldenlimit commented 4 years ago

Hello @songyuyang0918 像樓上所說,如果僅僅是幾個點可以通過Maker加載,如果數據變多的話,个人建議採用CSV或者其他mapbox支持的格式(GeoJSON, Shapefile, KML, or GPX files),比如參考這個csv生成文檔: https://docs.mapbox.com/help/glossary/csv/

把座標和數據放進去,通過Mapbox的developer帳號,把文件上傳生成Vector tilesets

通過MGLVectorTileSource接口來讀取數據,詳情請參考這個案例: https://docs.mapbox.com/ios/maps/examples/dds-circle-layer/

希望對你有所幫助

songyuyang0918 commented 4 years ago

@goldenlimit 非常感谢您的回复. 因为我有自己的服务器, 并且该数据是人为的、可变的. 那样的话 我可能无法使用您所说的"文件上传". 不过您说的 Makerload , 可以详细的告诉我IOS怎么操作他吗? 我没有找到相关的文档.

我尝试过将数据转成geojson格式的点, 利用MGLSymbolStyleLayer生成,但图标显示出现了问题, 我将它发布到了mapbox的问题当中,没有人来回复我 (https://github.com/mapbox/mapbox-gl-native/issues/16082)

goldenlimit commented 4 years ago

@Jing-flyloveyin Maybe you guys should contact with iOS team to see what's going on since @songyuyang0918 mentioned in the gl-native repo, or maybe b/c in a wrong place: https://github.com/mapbox/mapbox-gl-native/issues/16082

@songyuyang0918 我等抽空可以具體試試看,但基於你形容的問題在上面的那個issue裡面,感覺是兩個問題: 1⃣️是zoom level 的問題,不知道是不是需要你在定義一個新的MGLSymbolStyleLayer時候需要把zoomlevel 也要定義好,因為我看到有人提到過這個:

One option is to add the labels as a MGLSymbolStyleLayer, then determine the textOpacity based on zoom level. If you are using the current version of the Maps SDK for iOS, you could try something like:

symbols.textOpacity = NSExpression(format: "mgl_interpolate:withCurveType:parameters:stops:($zoomLevel, 'linear', nil, %@)", [16.9: 0, 17: 1])

我看你貼的原代碼裡面定義的textOpacity是一個固定的值,不知道是不是這個問題。 Documentation你可以查看下這個sample:https://docs.mapbox.com/ios/maps/examples/runtime-multiple-annotations/

2⃣️關於中英文混合和數字 顯示的問題,如果你把 1⃣️修復好了,還有這個情況,那感覺是個bug

希望對你有所幫助。

songyuyang0918 commented 4 years ago

按照您的说法,我修改了一下,没有成功. Mapbox的Jordan Webb告诉我,只能将数据上传到Mapbox才可以调整我想要的效果,不知道您怎么看?

屏幕快照 2020-01-03 下午3 09 22

如果您有时间,下面是我代码转成的geojson数据,希望您可以试一下? 非常感谢! point.txt