gpt4 book ai didi

android - 如何更快地加载 android google map 标记?

转载 作者:行者123 更新时间:2023-11-30 02:38:27 25 4
gpt4 key购买 nike

我正在将标记加载到谷歌地图,它的性能非常糟糕:加载 map 和 40 个标记大约需要 5 秒。(在加载 map 和标记之前,屏幕是空白的)

这是我的 xml 文件:

 <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<fragment
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.SupportMapFragment"/>
</RelativeLayout>

以下代码为 map 添加标记:

1) 遍历所有 Restaurant 对象,获取每个餐厅的地址。

2) 将地址转换为 LatLng 对象

3) 添加到标记

      //partial of the method
for (Restaurant rest : rests) {
LatLng ll = getLatLng(rest.getAddress());//converts address to LatLng
MarkerOptions marker = new MarkerOptions()
.title(rest.getName())
// .snippet("Briefly description: " + i++)
.position(ll)
.icon(BitmapDescriptorFactory.fromResource(R.drawable.marker))
.anchor(0.0f, 1.0f);
myMap.addMarker(marker);
}


public LatLng getLatLng(String address) {

try {
ArrayList<Address> addresses = (ArrayList<Address>) geocoder.getFromLocationName(address, MAX_ADDRESS_ALLOWDED);
for (Address add : addresses) {
if (true) {//Controls to ensure it is right address such as country etc.
longitude = add.getLongitude();
latitude = add.getLatitude();
}
}
} catch (Exception e) {
Toast.makeText(myContext, e.getMessage(), Toast.LENGTH_SHORT).show();
}
return new LatLng(latitude, longitude);
}

我正在使用 AsyncTask 的方法 onPostExecute 添加标记,有人可以帮助我吗?

最佳答案

同时将标记的图标放在不同的可绘制文件夹(hdpi、mdpi、...)而不是一个文件夹(可绘制)中可能会有所帮助。我的意思是使图标与不同的屏幕分辨率兼容。

关于android - 如何更快地加载 android google map 标记?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26152081/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com