Google maps 查找缩放级别以适合用户的第三个最近点
我正在开发的应用程序需要一个地图,可以缩放到离用户最近的三个站点。为此,我需要找出用户和距离用户最远的站点之间的距离。然后,我需要缩放地图,将用户位于中心的最远车站包括在内。我知道也知道。我也学到了一点。然而,我似乎无法将所有这些结合起来实现我的目标。有人能告诉我这个方向吗?1)在点之间迭代,找出到当前位置的距离 2) 找到最近的三个点 3) 在谷歌地图中创建一个绑定,如下所示:Google maps 查找缩放级别以适合用户的第三个最近点,google-maps,android-maps-v2,Google Maps,Android Maps V2,我正在开发的应用程序需要一个地图,可以缩放到离用户最近的三个站点。为此,我需要找出用户和距离用户最远的站点之间的距离。然后,我需要缩放地图,将用户位于中心的最远车站包括在内。我知道也知道。我也学到了一点。然而,我似乎无法将所有这些结合起来实现我的目标。有人能告诉我这个方向吗?1)在点之间迭代,找出到当前位置的距离 2) 找到最近的三个点 3) 在谷歌地图中创建一个绑定,如下所示: var bounds = new google.maps.LatLngBounds(); 4) 将该界限延伸到所有
var bounds = new google.maps.LatLngBounds();
4) 将该界限延伸到所有三点
bounds.extend(myLatLngPoint);
5) 拟合边界:
map.fitBounds(bounds);
如果您有任何问题,请告诉我。抱歉,我想让@ericpap的回答更优雅一些。您不需要首先找到距离。地图准备好后,在
ngAfterViewInit
中可以执行以下操作:
map.component.ts
import { Component, OnInit, ViewChild, AfterViewInit } from '@angular/core';
import { AgmMap } from '@agm/core';
declare var google: any;
@Component({
selector: 'app-map',
templateUrl: './map.component.html',
styleUrls: ['./map.component.css']
})
export class MapComponent implements OnInit, AfterViewInit {
@ViewChild('AgmMap') agmMap: AgmMap;
constructor() { }
private agent1_lat = 40.940911;
private agent1_lon = 26.317059;
private agent2_lat = 40.942159;
private agent2_lon = 26.319591;
ngOnInit() {
console.log('onInit')
}
ngAfterViewInit(){
this.agmMap.mapReady.subscribe(map => {
var bounds = new google.maps.LatLngBounds()
bounds.extend(new google.maps.LatLng(this.agent1_lat, this.agent1_lon))
bounds.extend(new google.maps.LatLng(this.agent2_lat, this.agent2_lon))
map.fitBounds(bounds)
})
}
map.component.html
<agm-map #AgmMap [latitude]="lat" [longitude]="lon">
<agm-marker [latitude]="agent1_lat" [longitude]="agent1_lon"></agm-marker>
<agm-marker [latitude]="agent2_lat" [longitude]="agent2_lon"></agm-marker>
</agm-map>