Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 谷歌地图API(JS):检查我是否到达目的地_Javascript_Google Maps_Google Maps Api 3 - Fatal编程技术网

Javascript 谷歌地图API(JS):检查我是否到达目的地

Javascript 谷歌地图API(JS):检查我是否到达目的地,javascript,google-maps,google-maps-api-3,Javascript,Google Maps,Google Maps Api 3,我正在为iPad开发HTML5网络应用程序,它使用谷歌地图API。这个API对我来说是新的,我已经搜索了许多与它相关的问题的答案。标记、信息窗口、路线、地理位置、街景。关于这一切最有用的信息可在官方文件中找到: 然而,我仍然找不到一个(可能是简单的)问题的解决方案。例如,我创建了一个新的地图实例和一个标记(目的地),开始观察我的位置(地理位置),并绘制了一条到该标记位置的路线我如何检查何时到达目的地?我已经查找了DirectionService、DirectionsRenderer等适当的事件

我正在为iPad开发HTML5网络应用程序,它使用谷歌地图API。这个API对我来说是新的,我已经搜索了许多与它相关的问题的答案。标记、信息窗口、路线、地理位置、街景。关于这一切最有用的信息可在官方文件中找到:

然而,我仍然找不到一个(可能是简单的)问题的解决方案。例如,我创建了一个新的地图实例和一个标记(目的地),开始观察我的位置(地理位置),并绘制了一条到该标记位置的路线我如何检查何时到达目的地?我已经查找了DirectionService、DirectionsRenderer等适当的事件,但没有结果。另外,我在这个网站上也找到了同样的主题,但它是关于Android开发的,而不是关于JS()

由于没有希望,我发明了自己的解决方案,但它似乎不能正常工作(我还没有完全测试它,我将在未来几天内完成)。我想,如果我将我当前位置的lat&lng与目的地的lat&lng进行比较,那么我就能抓住到达目的地的时刻:

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