android 安卓谷歌Map:GeoJsonLayer.要素更改geojson文件的顺序

umuewwlo  于 2022-12-25  发布在  Android
关注(0)|答案(1)|浏览(111)

我有一个location geojson文件,如下所示:

{
"type":"FeatureCollection", 
"features":[
  {"type":"Feature","properties":{"name":"West"}},
  {"type":"Feature","properties":{"name":"East"}},
  {"type":"Feature","properties":{"name":"North"}}
]}
var geoJsonLayer = GeoJsonLayer(googleMap, R.raw.location, this)

geoJsonLayer.features.forEach {
   print(it.properties)
}

我发现geoJsonLayer.features的顺序变为:

{
  "East",
  "West",
  "North"
}

官方文档没有说明是否随机返回特性元素。
我想迭代geoJsonLayer.features以按照location文件中显示的顺序获得properties
是否有任何变通方案?

bvhaajcl

bvhaajcl1#

这是因为geoJsonLayer.features是一个HashMap,迭代顺序取决于键,理论上可以在utils库的BiMultiMap.java类中用LinkedHashMap替换HashMap

//public class BiMultiMap<K> extends HashMap<K, Object> {
public class BiMultiMap<K> extends LinkedHashMap<K, Object> {

但是看起来最简单的方法是通过自定义比较器对geoJsonLayer.features的值排序。

相关问题