我有一个玩家和另一个物体的坐标.两者都具有地理坐标(纬度和经度).我也有玩家面对的方向(指南针).如何从玩家方向计算与另一个物体的角度?例如,我想知道对象是否在玩家的右侧/左侧以及多少度.
非常感谢!
我有一个托管Google Earth Plugin实例的应用程序,我有兴趣获取当前的地图比例并在我的应用程序中使用它.
我知道我可以使用GEOptions并设置Scale Legend可见性,但我想在我的应用程序中使用实际的比例值,但我找不到它的API.
有没有办法做到这一点?
如果没有,我如何使用当前视图计算当前比例?
我正在通过Google Maps API(第3版)开发应用程序.
我有两个google.maps.LatLng名为loc1和的对象loc2.
如何以米为单位计算它们之间的距离?
我尝试使用此问题中的各种技巧 将纬度/经度度量转换为米.但是,我质疑我的实施的可靠性.
我也尝试过实现距离矩阵,但我认为距离矩阵只需要计算2点之间的距离就可以了.
谢谢!
我有一个用lat/long表示的点
Position louvreMuseum = new Position( 48.861622, 2.337474 );
Run Code Online (Sandbox Code Playgroud)
我有一个以米为单位的半径值.我需要检查另一个点,也用lat/long表示,是否在圆圈内.
如果我在平坦的表面上,我可以简单地使用公式
(x - center_x)^2 + (y - center_y)^2 <= radius^2
Run Code Online (Sandbox Code Playgroud)
在这些深深解释SO回答.
然而,由于纬度/经度的使用,我不能使用该公式,因为行星的球形性质.
如何计算从任何给定点到中心的距离与半径进行比较?
我必须比较坐标才能获得距离。因此,我用sc.textFile()加载数据并制成笛卡尔积。文本文件中大约有2.000.000行,因此需要比较2.000.000 x 2.000.000坐标。
我用大约2.000的坐标测试了代码,并且在几秒钟内运行良好。但是使用大文件似乎在某个时刻停止了,我不知道为什么。该代码如下所示:
def concat(x,y):
if(isinstance(y, list)&(isinstance(x,list))):
return x + y
if(isinstance(x,list)&isinstance(y,tuple)):
return x + [y]
if(isinstance(x,tuple)&isinstance(y,list)):
return [x] + y
else: return [x,y]
def haversian_dist(tuple):
lat1 = float(tuple[0][0])
lat2 = float(tuple[1][0])
lon1 = float(tuple[0][2])
lon2 = float(tuple[1][2])
p = 0.017453292519943295
a = 0.5 - cos((lat2 - lat1) * p)/2 + cos(lat1 * p) * cos(lat2 * p) * (1 - cos((lon2 - lon1) * p)) / 2
print(tuple[0][1])
return (int(float(tuple[0][1])), (int(float(tuple[1][1])),12742 * asin(sqrt(a))))
def sort_val(tuple):
dtype = [("globalid", …Run Code Online (Sandbox Code Playgroud) 我有一个包含位置(一个CSV latitude,longitude对于给定的用户通过表示)id字段,在给定时间(timestamp)。我需要为每个用户计算点与连续点之间的距离和速度。例如,对于ID 1,我需要找到点1和点2,点2和点3,点3和点4之间的距离和速度,依此类推。鉴于我正在使用地球上的坐标,因此我知道Haversine度量标准将用于距离计算,但是,鉴于时间和用户订单方面的问题,我不确定如何遍历我的文件。有了这个,python我如何遍历文件以按用户和时间对事件进行排序,然后计算每个事件之间的距离和速度?
理想情况下,输出将是第二个csv,如下所示:ID#, start_time, start_location, end_time, end_location, distance, velocity。
以下示例数据:
ID,timestamp,latitude,longitude
3,6/9/2017 22:20,38.7953326,77.0088833
1,5/5/2017 13:10,38.8890106,77.0500613
2,2/10/2017 16:23,40.7482494,73.9841913
1,5/5/2017 12:35,38.9206015,77.2223287
3,6/10/2017 10:00,42.3662109,71.0209426
1,5/5/2017 20:00,38.8974155,77.0368333
2,2/10/2017 7:30,38.8514261,77.0422981
3,6/9/2017 10:20,38.9173461,77.2225527
2,2/10/2017 19:51,40.7828687,73.9675438
3,6/10/2017 6:42,38.9542676,77.4496951
1,5/5/2017 16:35,38.8728748,77.0077629
2,2/10/2017 10:00,40.7769311,73.8761546
Run Code Online (Sandbox Code Playgroud) 我在我的 java 项目中使用 Google Maps API v3。我需要找到两点之间的欧几里得距离。但是当我使用普通公式计算欧几里得距离时,结果在某种程度上是错误的:
例如:
假设我有两个点纽约 (43.2994285, -74.2179326)和 斯德哥尔摩 (59.3293235, 18.0685808),我想计算这两个点的欧几里得距离:
双倍距离 = Math.sqrt(Math.pow(43.2994285 - 59.3293235, 2) + Math.pow(-74.2179326 - 18.0685808, 2)); 距离 = 93.66834091217483
结果显然是错误的。
然后我意识到开始坐标不是笛卡尔坐标系中的 (0,0)。实际上开始是 51° 28' 38" N, 0° 00' 00" W (WGS 84)。参考点是格林威治 (51.4825766, -0.0076589)。
所以计算新坐标的过程是这样的:
纽约 (|51.4825766 - 43.2994285|, |-0.0076589- (-74.2179326)|) = 纽约 (8.1831481, 74.2102737)
斯德哥尔摩 (|51.4825766 - 59.3293235|, |-0.0076589 - 18.0685808|) = 斯德哥尔摩 (7.8467469, 18.0762397)
然后应用欧几里得距离的公式。我的问题是这是一种正确的方法,还有其他方法可以做到这一点吗?
java gis google-maps latitude-longitude coordinate-transformation
我有一个包含50个项目的列表:
var mylocations = [{'id':'A', 'loc':[-21,2]},...,];
Run Code Online (Sandbox Code Playgroud)
如何在传单或JavaScript中最有效地使其成为如果我接受特定位置的输入[<longitude>,<latitude>],半径(例如50英里)......我可以获得"mylocations"该圈内的所有内容吗?
使用外部库很好.
我使用此参考https://www.npmjs.com/package/agm-direction获取两点之间的方向。 现在,我想获取/计算两个位置之间的距离,这令人困惑。
在我的模块中
AgmCoreModule.forRoot({
apiKey: 'My API Key....',
libraries: ['geometry']
})
Run Code Online (Sandbox Code Playgroud)
在我的组件中
getDirection() {
this.origin = { lat: this.pick_latitude, lng: this.pick_longitude }
this.destination = { lat: this.drop_latitude, lng: this.drop_longitude }
}
Run Code Online (Sandbox Code Playgroud)
我的问题:当使用上述参考获取方向路径时,如何获得两点之间的距离?请给我建议(Google Map API等)。我正在使用Angular 6
我使用这个代码,它取两个不同位置的经度和纬度,并计算我的代码之间的距离
protected void Button1_Click(object sender, EventArgs e)
{
double lat1= Convert.ToDouble(TextBox1.Text);
double lon1= Convert.ToDouble(TextBox2.Text);
double lat2= Convert.ToDouble(TextBox3.Text);
double lon2= Convert.ToDouble(TextBox4.Text);
var rlat1 = Math.PI * lat1/180;
var rlat2 = Math.PI * lat2/180;
var rlon1 = Math.PI * lon1/180;
var rlon2 = Math.PI * lon2 / 180;
var theta = lon1-lon2;
var rtheta = Math.PI * theta/180;
var dist = Math.Sign(rlat1) * Math.Sign(rlat2) + Math.Cos(rlat1) * Math.Cos(rlat2) * Math.Cos(rtheta);
dist = Math.Acos(dist);
dist = dist * 180/Math.PI;
dist = dist * …Run Code Online (Sandbox Code Playgroud) 我想说明的中心之间的距离marker,以每另一个markers在它自己的window.有没有办法计算距离angular-google-maps?
以下是此处的代码.
map.html
<div id="map_canvas" ng-controller="mainCtrl">
<ui-gmap-google-map center="map.center" zoom="map.zoom" draggable="true" options="options" bounds="map.bounds">
<ui-gmap-markers models="randomMarkers" coords="'self'" icon="'icon'">
</ui-gmap-markers>
</ui-gmap-google-map>
</div>
Run Code Online (Sandbox Code Playgroud)
controller.js
angular.module('appMaps', ['uiGmapgoogle-maps'])
.controller('mainCtrl', function($scope) {
$scope.map = {
center: {
latitude: 40.1451,
longitude: -99.6680
},
zoom: 4,
bounds: {}
};
$scope.options = {
scrollwheel: false
};
var createRandomMarker = function(i, bounds, idKey) {
var lat_min = bounds.southwest.latitude,
lat_range = bounds.northeast.latitude - lat_min,
lng_min = bounds.southwest.longitude,
lng_range = bounds.northeast.longitude - lng_min; …Run Code Online (Sandbox Code Playgroud) 任何人都可以告诉我在node.js中找到两个地理点(拉特,长点)之间距离的最佳方法是什么.如果有任何好的节点js库请告诉我.此外,我不想找到直线路径,我想找到位置之间可能的行车路径.
先感谢您
javascript ×4
distance ×3
geolocation ×3
google-maps ×3
c# ×2
python ×2
android ×1
angular ×1
angularjs ×1
apache-spark ×1
dart ×1
flutter ×1
geospatial ×1
gis ×1
gps ×1
haversine ×1
java ×1
leaflet ×1
math ×1
node.js ×1