我开发了一个继承自View类的类,我希望它可以作为Google Maps API v2中MapFragment / MapView的标记。我记得,在API v1中这样的事情是可能的,甚至现在它可以在iOS上实现。我正在寻找这样的东西:
MapView map = (MapView)findViewById(R.id.mapview);
CircleTimerView myTimer = new CircleTimerView(this);
LayoutParams lp = new LayoutParams(iv.getWidth(), iv.getHeight(), geoPoint, LayoutParams.BOTTOM);
map.addView(myTimer,lp);
我的自定义视图已设置动画,这是我的应用的关键功能。
我的问题是:Google Maps API的当前状态是否可行?或者我应该尝试获取API v1密钥并使用已弃用的内容吗?
提前感谢您的回复。
答案 0 :(得分:2)
我应该尝试获取API v1密钥并使用已弃用的内容吗?
您无法获取API v1的新密钥。
我的自定义视图已设置动画,这是我的应用的关键功能。
除非您使用Marker
反复更改图标,否则无法设置动画Marker.setIcon
图标。
Google Maps API的当前状态是否可能?
如果先将View
绘制为Bitmap
,则可以使用{{1}}作为图标。
来自Chris Broadfoot的这个库可以极大地帮助您完成这项任务:
https://github.com/googlemaps/android-maps-utils
有关lib可以执行的操作,请参阅此视频:http://www.youtube.com/watch?v=nb2X9IjjZpM
答案 1 :(得分:0)
为了在google maps api v2上自定义/使用您自己的自定义制作工具,您可以按如下方式编写代码:
onCreate中的声明标记:
userIcon = R.drawable.red;
然后我在你需要它的地方使用它,在我的情况下我在一个方法中使用它:
if(userMarker!=null) userMarker.remove();
userMarker = theMap.addMarker(new MarkerOptions()
.position(lastLatLng)
.title("You are here")
.icon(BitmapDescriptorFactory.fromResource(userIcon))
.snippet("Your last recorded location"));
theMap.animateCamera(CameraUpdateFactory.newLatLng(lastLatLng), 100, null);
CameraUpdate center=
CameraUpdateFactory.newLatLng(lastLatLng);
CameraUpdate zoom=CameraUpdateFactory.zoomTo(15);
theMap.moveCamera(center);
theMap.animateCamera(zoom);
希望这有帮助。祝你好运
答案 2 :(得分:0)
这些天我遇到了同样的问题,你应该为v2进行切换,因为你可以从v1更容易+许多新功能做所有相同的事情。
MapView已被新的GoogleMap-Objecttype取代。
可以找到非常详细和体面的教程网站HERE!