gpt4 book ai didi

google-maps - 有什么方法可以在 Google map 中区分建筑物和道路吗?

转载 作者:行者123 更新时间:2023-12-03 03:22:15 26 4
gpt4 key购买 nike

因此,如果我有一个通用 GPS 纬度/经度点,是否可以说,是的,该点位于建筑物内,或者该点位于汽车可以行驶的道路上?

最佳答案

我认为仅凭 Google map 数据无法确定某个点是道路还是建筑物。为此,我认为您需要一些额外的数据源。

但是,您可以使用 Snap point to street 来确定某个点是否是道路。技术。

我重新编写了使用 Google Maps API v3 的技术,并添加了半正弦函数来告诉您原始点击点与最近街道中对应点之间的距离(以公里为单位)。

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no"/>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<title>Google Maps JavaScript API v3 Example: Directions Simple</title>
<link href="http://code.google.com/apis/maps/documentation/javascript/examples/default.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">

rad = function(x) {return x*Math.PI/180;}

distHaversine = function(p1, p2) {
var R = 6371; // earth's mean radius in km
var dLat = rad(p2.lat() - p1.lat());
var dLong = rad(p2.lng() - p1.lng());

var a = Math.sin(dLat/2) * Math.sin(dLat/2) +
Math.cos(rad(p1.lat())) * Math.cos(rad(p2.lat())) * Math.sin(dLong/2) * Math.sin(dLong/2);
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
var d = R * c;

return d.toFixed(3);
}

var dirn = new google.maps.DirectionsService();
var map;

function initialize() {
var center = new google.maps.LatLng(53.7877, -2.9832);
var myOptions = {
zoom:15,
mapTypeId: google.maps.MapTypeId.ROADMAP,
center: center
}
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

google.maps.event.addListener(map, "click", function(event) {
// == When the user clicks on a the map, get directiobns from that point to itself ==
var request = {
origin: event.latLng,
destination: event.latLng,
travelMode: google.maps.DirectionsTravelMode.DRIVING
};
dirn.route(request, function(response, status) {
if (status == google.maps.DirectionsStatus.OK) {
if(response.routes && response.routes.length > 0){
route = response.routes[0];
if(route.overview_path && route.overview_path.length > 0){
pos = route.overview_path[0];
new google.maps.Marker({
position: pos,
map: map
});
alert(distHaversine(request.origin, pos));
}
}
}
});
});
}




</script>
</head>
<body onload="initialize()">
<div id="map_canvas"></div>
</body>
</html>

希望这对您有所帮助。

关于google-maps - 有什么方法可以在 Google map 中区分建筑物和道路吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4128628/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com