如何使用 google 地图 api 知道一个点是在陆地上还是在水中

how to know whether a point is on land or water using google maps api

我想使用 google 地图地理编码 api.

知道一个点是在陆地上还是在水上

如果我将我的坐标点指定为 (40,-74) 在水体上,我仍然会得到如下所示的地址。

地址is:1416 Highland Ave, Cinnaminson, NJ 08077, USA 结果[0].geometry.locationType:屋顶 结果[0].types[0].toString():street_address(必须是"natural_feature")

我正在使用 java 客户端库来执行此操作。任何人都可以帮助我,因为我在这里开始了,必须尽快提交我的作业。提前致谢。

您可以按结果类型和位置类型过滤反向地理编码的结果。在结果类型中,您可以查找 natural_feature,位置类型应为 GEOMETRIC_CENTER 或 APPROXIMATE,以排除任何可能靠近陆地上给定点的屋顶地址。

请查看以下请求:

https://maps.googleapis.com/maps/api/geocode/json?latlng=40%2C-74&result_type=natural_feature&location_type=GEOMETRIC_CENTER%7CAPPROXIMATE&key=YOUR_API_KEY

响应的前两项是:

  • 北大西洋(类型:natural_feature,地点 ID:ChIJeQ3JDsMo3QoRBGVpwFckZUQ)
  • 大西洋(类型:natural_feature,地点 ID:ChIJ_7hu48qBWgYRT1MQ81ciNKY)

现在如果我对陆地上的点执行相同的请求:

https://maps.googleapis.com/maps/api/geocode/json?latlng=40.044043%2C-74.124069&result_type=natural_feature&location_type=GEOMETRIC_CENTER%7CAPPROXIMATE&key=YOUR_API_KEY

第一个结果将是 'Drum Point Rd, Brick, NJ 08723, USA' 类型的路线。

希望对您有所帮助。