Javascript 谷歌地图API(JS):检查我是否到达目的地
我正在为iPad开发HTML5网络应用程序,它使用谷歌地图API。这个API对我来说是新的,我已经搜索了许多与它相关的问题的答案。标记、信息窗口、路线、地理位置、街景。关于这一切最有用的信息可在官方文件中找到: 然而,我仍然找不到一个(可能是简单的)问题的解决方案。例如,我创建了一个新的地图实例和一个标记(目的地),开始观察我的位置(地理位置),并绘制了一条到该标记位置的路线我如何检查何时到达目的地?我已经查找了DirectionService、DirectionsRenderer等适当的事件,但没有结果。另外,我在这个网站上也找到了同样的主题,但它是关于Android开发的,而不是关于JS() 由于没有希望,我发明了自己的解决方案,但它似乎不能正常工作(我还没有完全测试它,我将在未来几天内完成)。我想,如果我将我当前位置的lat&lng与目的地的lat&lng进行比较,那么我就能抓住到达目的地的时刻:Javascript 谷歌地图API(JS):检查我是否到达目的地,javascript,google-maps,google-maps-api-3,Javascript,Google Maps,Google Maps Api 3,我正在为iPad开发HTML5网络应用程序,它使用谷歌地图API。这个API对我来说是新的,我已经搜索了许多与它相关的问题的答案。标记、信息窗口、路线、地理位置、街景。关于这一切最有用的信息可在官方文件中找到: 然而,我仍然找不到一个(可能是简单的)问题的解决方案。例如,我创建了一个新的地图实例和一个标记(目的地),开始观察我的位置(地理位置),并绘制了一条到该标记位置的路线我如何检查何时到达目的地?我已经查找了DirectionService、DirectionsRenderer等适当的事件
if (myPosition.lat() == dest.marker.position.lat() && myPosition.lng() == dest.marker.position.lng()) {
alert('You have arrived!');
}
此代码在navigator.geolocation.watchPosition的成功监视位置回调中执行
你有什么想法吗?LatLng的值具有很高的精度,你不能期望两个标记的位置完全匹配 添加公差:
//tolerance 50 meters
//requires the geometry-library
if(google.maps.geometry.spherical
.computeDistanceBetween(myPosition,dest.marker.position)<50){
alert('You have arrived!');
}
//公差50米
//需要几何图形库
如果(google.maps.geometry.spheremic)
.ComputedDistanceBetween(myPosition,dest.marker.position)LatLng的值具有很高的精度,您不能期望两个标记的位置完全匹配
添加公差:
//tolerance 50 meters
//requires the geometry-library
if(google.maps.geometry.spherical
.computeDistanceBetween(myPosition,dest.marker.position)<50){
alert('You have arrived!');
}
//公差50米
//需要几何图形库
如果(google.maps.geometry.spheremic)
.ComputedDistanceBetween(myPosition,dest.marker.position)LatLng的值具有很高的精度,您不能期望两个标记的位置完全匹配
添加公差:
//tolerance 50 meters
//requires the geometry-library
if(google.maps.geometry.spherical
.computeDistanceBetween(myPosition,dest.marker.position)<50){
alert('You have arrived!');
}
//公差50米
//需要几何图形库
如果(google.maps.geometry.spheremic)
.ComputedDistanceBetween(myPosition,dest.marker.position)LatLng的值具有很高的精度,您不能期望两个标记的位置完全匹配
添加公差:
//tolerance 50 meters
//requires the geometry-library
if(google.maps.geometry.spherical
.computeDistanceBetween(myPosition,dest.marker.position)<50){
alert('You have arrived!');
}
//公差50米
//需要几何图形库
如果(google.maps.geometry.spheremic)
.ComputedDistanceBetween(myPosition,dest.marker.position)我认为自制解决方案不是一个好主意,因为maps API可以做任何事情
我认为制作一个自制的解决方案不是一个好主意,因为maps API可以做任何事情
我认为制作一个自制的解决方案不是一个好主意,因为maps API可以做任何事情
我认为制作一个自制的解决方案不是一个好主意,因为maps API可以做任何事情
对于Android Studio用户:
获取currentLocation和destinationLocation的对象
Location currentLocation; // use fusedLocationProviderService
Location destinationLocation = new Location(""); // set Lat and Long
destinationLocation.setLatitude(122.1234123); // like this
if (location.distanceTo(new Location("")) < 30) { // meters
Toast.makeText(MainActivity.this, "Toast you have reached",
Toast.LENGTH_SHORT).show();
}
Location currentLocation;//使用fusedLocationProviderService
位置destinationLocation=新位置(“”;//设置Lat和Long
destinationLocation.setLatitude(122.1234123);//像这样
如果(位置.距离到(新位置(“”))小于30{//m
Toast.makeText(MainActivity.this,“您已到达的Toast”,
吐司。长度(短)。show();
}
对于Android Studio用户:
获取currentLocation和destinationLocation的对象
Location currentLocation; // use fusedLocationProviderService
Location destinationLocation = new Location(""); // set Lat and Long
destinationLocation.setLatitude(122.1234123); // like this
if (location.distanceTo(new Location("")) < 30) { // meters
Toast.makeText(MainActivity.this, "Toast you have reached",
Toast.LENGTH_SHORT).show();
}
Location currentLocation;//使用fusedLocationProviderService
位置destinationLocation=新位置(“”;//设置Lat和Long
destinationLocation.setLatitude(122.1234123);//像这样
如果(位置.距离到(新位置(“”))小于30{//m
Toast.makeText(MainActivity.this,“您已到达的Toast”,
吐司。长度(短)。show();
}
对于Android Studio用户:
获取currentLocation和destinationLocation的对象
Location currentLocation; // use fusedLocationProviderService
Location destinationLocation = new Location(""); // set Lat and Long
destinationLocation.setLatitude(122.1234123); // like this
if (location.distanceTo(new Location("")) < 30) { // meters
Toast.makeText(MainActivity.this, "Toast you have reached",
Toast.LENGTH_SHORT).show();
}
Location currentLocation;//使用fusedLocationProviderService
位置destinationLocation=新位置(“”;//设置Lat和Long
destinationLocation.setLatitude(122.1234123);//像这样
如果(位置.距离到(新位置(“”))小于30{//m
Toast.makeText(MainActivity.this,“您已到达的Toast”,
吐司。长度(短)。show();
}
对于Android Studio用户:
获取currentLocation和destinationLocation的对象
Location currentLocation; // use fusedLocationProviderService
Location destinationLocation = new Location(""); // set Lat and Long
destinationLocation.setLatitude(122.1234123); // like this
if (location.distanceTo(new Location("")) < 30) { // meters
Toast.makeText(MainActivity.this, "Toast you have reached",
Toast.LENGTH_SHORT).show();
}
Location currentLocation;//使用fusedLocationProviderService
位置destinationLocation=新位置(“”;//设置Lat和Long
destinationLocation.setLatitude(122.1234123);//像这样
如果(位置.距离到(新位置(“”))小于30{//m
Toast.makeText(MainActivity.this,“您已到达的Toast”,
吐司。长度(短)。show();
}
可能应该使用标记。getPosition()
而不是未记录的。position
可能应该使用标记。getPosition()
而不是未记录的。position
可能应该使用标记。getPosition()
而不是未记录的。position
可能应该使用标记.getPosition()
而不是未记录的。position