使用JSON对接Google Maps:标记无法显示问题排查求助
兄弟,太懂你这种折腾半天还是卡壳的感觉了!既然你已经刷了一堆教程、试了同类问题的解决方案,咱们先从几个容易被忽略的细节自查,另外麻烦把你的mapsActivity.java代码贴出来呀,没代码的话我没法精准揪出问题~
先给你列几个高频踩坑点,你可以先对照着检查:
API密钥配置踩坑:
先确认你的Google Maps API密钥在AndroidManifest.xml里配置正确,而且已经在Google Cloud控制台开了Maps SDK for Android服务,密钥的包名、SHA-1限制完全和你的项目匹配——十次里有五次标记不显示都是因为密钥权限没开对或者限制错了。标记添加时机不对:
是不是直接在onCreate里就调用addMarker了?这时候地图可能还没初始化完成,根本没法加载标记。正确姿势是在OnMapReadyCallback的onMapReady方法里操作地图、添加标记,确保地图已经完全就绪。坐标参数搞反或非法:
检查你给标记设置的经纬度:纬度范围是-90到90,经度是-180到180,要是超出范围肯定显示不出来;另外别把经纬度写反了,比如把经度当纬度传,结果标记直接跑到南极北极或者大洋里,你当然看不到。标记样式“隐身”了:
有没有自定义标记图标或者颜色?比如用了和地图背景几乎一样的颜色,或者图标尺寸太小/透明?先试试用默认的标记样式测试,看看能不能显示出来。权限相关问题:
如果是需要定位的标记,确认应用已经拿到ACCESS_FINE_LOCATION或ACCESS_COARSE_LOCATION权限,包括Manifest里的声明和动态申请逻辑都要到位;要是固定坐标的标记,这个影响不大,但也可以顺手检查下。
快把你的代码贴出来,我帮你仔细看看哪里出问题!
内容的提问来源于stack exchange,提问作者user2682025

