当前位置: 首页 > 知识库问答 >
问题:

如何使地图放大并居中到特定的纬度/纬度点?

慕俊迈
2023-03-14

我正在尝试这样做,当我启动我的应用程序时,手机将通过一个lat和lang点的ArrayList放大并居中到我设置多段线的区域。

    @Override
public void onMapReady(GoogleMap googleMap) {
    mMap = googleMap;
    ArrayList<MyPoint> points = Data.getPoints();
    PolylineOptions polylineOptions = new PolylineOptions();
    for (int i = 0; i < points.size(); i++) {
        MyPoint point = points.get(i);
        polylineOptions.add(new LatLng(point.getLat(), point.getLng()));
    }
    Polyline polyline = mMap.addPolyline(polylineOptions);
}

我在genymotion中启动应用程序,它会放大,然后以我设置的lat/lang ArrayList点为中心。目前,我只得到一张几乎显示全球的地图,我必须手动放大到我设置的折线。

共有2个答案

左丘烨烁
2023-03-14

您需要使用LatLngBounds,然后缩放相机以覆盖所有包含的标记:

LatLngBounds.Builder builder = new LatLngBounds.Builder();

在所有点/标记的循环中使用以下行:(您可以使用与将点添加到多边形选项相同的循环。)

builder.include(pointLatLng);

最后,(在循环之外)-

LatLngBounds bounds = builder.build();
map.animateCamera(CameraUpdateFactory.newLatLngBounds(bounds, 20));
蒋嘉颖
2023-03-14

需要“camera update factory”类来创建相机更新并移动地图的相机。摄像头更新工厂文档

@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
ArrayList<MyPoint> points = Data.getPoints();

int padding = 20; // or prefer padding

LatLngBounds.Builder builder = new LatLngBounds.Builder();

PolylineOptions polylineOptions = new PolylineOptions();

for (int i = 0; i < points.size(); i++) {
    MyPoint point = points.get(i);
    polylineOptions.add(new LatLng(point.getLat(), point.getLng()));
    builder.include(new LatLng(point.getLat(), point.getLng()));
}

Polyline polyline = mMap.addPolyline(polylineOptions);
LatLngBounds bounds = builder.build();
map.animateCamera(CameraUpdateFactory.newLatLngBounds(bounds, padding));


}
 类似资料:
  • 本文向大家介绍百度地图经纬度转换到腾讯地图/Google 对应的经纬度,包括了百度地图经纬度转换到腾讯地图/Google 对应的经纬度的使用技巧和注意事项,需要的朋友参考一下 实现目的:将百度地图经纬度 转换到 腾讯地图/Google 对应的经纬度. 方法1:使用代码进行转换 存在的问题:转换之后误差大,基本不可用 方法2: 该网站提供转换服务,坐标较为准确,可用,后台调用没有仔细研究 http:

  • 问题内容: 我有一个类型为(com.vividsolutions.jts.geom.Geometry)的几何对象。它目前是经度,纬度形式,我想翻转坐标,使其经度为纬度,这样我就可以将其以GeoJSON格式用于mongodb。 我看到的约束是:a)我想翻转坐标的输入是Geometry对象。b)几何对象将是多边形类型或多多边形。c)我想在将类型强制转换为Polygon / multipolygon之前

  • 问题内容: 我有一个类型为(com.vividsolutions.jts.geom.Geometry)的几何对象。它目前是经度,纬度形式,我想翻转坐标,使其经度为纬度,这样我就可以将其以GeoJSON格式用于mongodb。 我看到的约束是:a)我想翻转坐标的输入是Geometry对象。b)几何对象将是多边形类型或多多边形。c)我想在将类型强制转换为Polygon / multipolygon之前

  • 长话短说,我想更新地图上的标记仅使用传感器数据,但我在API中找不到允许我更新地图上的纬度/经度的库函数。根据我计算的新纬度/经度,有什么东西可以做到这一点吗?

  • Highmaps 从 1.1.0 开始支持经纬度定位功能,该功能依赖第三方库 proj4js(需要在 Highmaps 之前引入),最新版的文件可以从 cdnjs 上获取 <script src="https://cdn.bootcdn.net/ajax/libs/proj4js/2.7.2/proj4.js"></script> 有了经纬度支持后,我们可以通过 lon 和 lat 属性来指定经