gpt4 book ai didi

java - 如何在android studio中使用socket.io加载 map 后添加新标记

转载 作者:行者123 更新时间:2023-12-02 01:54:06 24 4
gpt4 key购买 nike

我正在使用 Android Studio 的 Google map api,当我的 socket.io 从服务器获取新位置时,我尝试添加新标记。意思是在 map 加载后,我想写socket.on("newloc",...)...并在我的 map 上设置新标记,但它给力关闭。我的代码:

    socket.on("miad", new Emitter.Listener() {
@Override
public void call(final Object... args) {

JSONObject data = (JSONObject) args[0];

LatLng latLng = new LatLng(newlat,newlng);
mMap.addMarker(new MarkerOptions()
.position(latLng)
.title("First Pit Stop")
.icon(BitmapDescriptorFactory
.defaultMarker(BitmapDescriptorFactory.HUE_GREEN)));

}
});

这缺少我的代码,例如我从套接字获取 newlat 和 newlng 。

最佳答案

我不知道你的套接字对象内部发生了什么。

正如我在评论中建议的那样,试试这个。

private void onMapReady(GoogleMap map){

try {

socket.on("miad", new Emitter.Listener() {
@Override
public void call(final Object... args) {

try {

JSONObject data = (JSONObject) args[0];

runOnUiThread(new Runnable() {
LatLng latLng = new LatLng(newlat, newlng);
mMap.addMarker(new MarkerOptions()
.position(latLng)
.title("First Pit Stop")
.icon(BitmapDescriptorFactory
.defaultMarker(BitmapDescriptorFactory.HUE_GREEN)));
});

} catch (Exception e) {
Log.e("runOnUiThread", "Ex", e);
}
}
});
} catch (Exception e) {
Log.e("onMapReady", "Ex", e);
}
}

至少它会在你的 logcat 中告诉你哪一行破坏了你的代码以及可能的原因。

关于java - 如何在android studio中使用socket.io加载 map 后添加新标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57409428/

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