【发布时间】:2018-01-30 19:02:03
【问题描述】:
我了解到您可以使用图块创建自定义图像地图。现在我看到了一个视频,这个过程是用 LeafletJS video here 完成的。
但是我怎样才能用谷歌地图做到这一点。例如,我有以下动物园地图示例。 我如何在谷歌地图中使用它。有人能指出我正确的方向、教程等吗?
【问题讨论】:
标签: google-maps google-maps-api-3 maps tiles
我了解到您可以使用图块创建自定义图像地图。现在我看到了一个视频,这个过程是用 LeafletJS video here 完成的。
但是我怎样才能用谷歌地图做到这一点。例如,我有以下动物园地图示例。 我如何在谷歌地图中使用它。有人能指出我正确的方向、教程等吗?
【问题讨论】:
标签: google-maps google-maps-api-3 maps tiles
为地图创建图块并非易事,为此有许多实用程序(例如maptiler)。您应该将图像拆分为图块,并将其保存在例如资产文件夹中。您还需要实现自定义TileProvider,例如thisAlex Vasilkov 的答案。
但是,实际上,如果您有“大”图像(由于内存限制而无法完全显示),或者您有多个用于不同缩放级别的图像,则需要使用磁贴 - 在这种情况下,zoomlevel 的一个磁贴变为@987654332 的 4 个磁贴@。台北动物园的schamatics不是很大,所以你可以使用GroundOverlay。
将您的图像作为zoo 可绘制资源,您可以使用如下内容:
@Override
public void onMapReady(GoogleMap googleMap) {
mGoogleMap = googleMap;
GroundOverlayOptions overlayZoo = new GroundOverlayOptions()
.image(BitmapDescriptorFactory.fromResource(R.drawable.zoo))
.transparency(0.5f)
.bearing(135)
.position(new LatLng(24.995517, 121.584058), 1000f);
mGoogleMap.addGroundOverlay(overlayZoo);
mGoogleMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(24.995517, 121.584058), 15.0f));
}
得到了类似的东西:
它是可缩放、可滚动、可旋转等的。
当然,这只是一个例子,你需要更精确的参考,方位,去除不必要的元素等。另外图像方案本身非常近似,与真实地形不同。
【讨论】:
.position(new LatLng(24.995517, 121.584058), 1000f); 行中的数字。