【问题标题】:Android - Google Map on +-180 longitude and 90 latitudeAndroid - +-180 经度和 90 纬度上的谷歌地图
【发布时间】:2015-10-09 17:25:39
【问题描述】:

我已经实现了一个带有这样的 xml 布局的 MapFragment:

<fragment xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/map"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:layout="@layout/activity_mappa_partenza" />

在 Google map api v.2 我想画一个多边形:

PolygonOptions optionsShadow = new PolygonOptions();
optionsShadow.fillColor(Color.RED);
optionsShadow.strokeColor(Color.RED);
optionsShadow.strokeWidth(1f);
optionsShadow.addAll(ombraLinkList);
map.addPolygon(optionsShadow);

ombraLinkList 是一个 LinkedList,其中包含来自 Sun Terminator Line 的所有点

我想要实现的是一个充满地球夜间区域的多边形。

如果纬度和经度属于这种类型: 纬度 90 朗 -180, 纬度 78 朗 -150, 纬度 75 朗 -120, -------- --------- 纬度 35 朗 -45, 纬度 55 经度 0, 纬度 65 经度 20, 纬度 75 经度 45, 纬度 80 经度 75, 纬度 90 经度 180

Lat 90, Lon 180 是 Lat 90, Lon -180 的同一点,我无法 绘制并关闭 poligon 区域。

任何建议将不胜感激。 谢谢大家。

【问题讨论】:

    标签: android google-maps polygon


    【解决方案1】:

    通常在 GIS 中绘制多边形时,起点与终点相同(“闭合多边形”)。所以使用 (90,180) 作为这个起点。通常,列表中坐标的顺序也很重要。因此,如果 (90,180) 存在则删除坐标 (90,-180) 并确保 (90,180) 是列表中的第一个和最后一个。

    编辑:

    坐标列表的数据类型为com.google.android.gms.maps.model.LatLng,注意specification为:

    经度,以度为单位。该值在 [-180, 180 )

    范围内

    纬度,以度为单位。该值在 [-90, 90 ] 范围内。

    这意味着不是碰撞。所以你尝试 (90,180) 作为起点,所以现在我们知道在谷歌地图 GIS 系统中它应该是 (90,-180)...

    【讨论】:

    • 我已经尝试过了...但是没有解决方案...多边形没有关闭
    • @sat70 你的链表的数据类型是什么?它应该是 LatLng 对象
    • 感谢您的回复...我的数据类型是 LatLng..但我认为在 +-180 经度附近会有一些奇怪的行为。我通过使用透明描边颜色找到了部分解决方案,最后一点是 179.999 而不是 180 ....
    • @sat70 很难相信谷歌会错过...你试过我用 (90,-180) 写的吗?而不是(90,180)?您订购了这份清单吗?
    • 是的,我尝试了您的建议-我认为这与此处提到的问题相同:link 浮点计算问题实际上可以使用 179.5 我有一条细线我不确定但我认为与这个问题有关:link
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-26
    • 2016-12-21
    相关资源
    最近更新 更多