如何检查两个LatLng值使用如果条件在谷歌地图api v3

How to check two LatLng values using if condition in google map api v3?

本文关键字:条件 如果 谷歌地图 v3 api LatLng 检查 何检查 两个      更新时间:2023-09-26

我使用DirectionsRenderer开发了一个带有路由的地图…如果出发地和目的地在同一个地方,我需要目的地标记被反弹…但是当我使用IF检查两个LatLng值是否相同时,程序不执行IF语句…目的地标记没有被反弹…我的代码是

        var myOptions = 
    {
        center: new google.maps.LatLng(default_latitude,default_longitude),
        zoom: 4,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    var map = new google.maps.Map(document.getElementById("map"),myOptions);
    var latlng1=new google.maps.LatLng(glat,glon);
    var latlng2=new google.maps.LatLng(hlat,hlon);
    var marker = new google.maps.Marker({   
            icon: "http://www.googlemapsmarkers.com/v1/B/67BF4B/000000/00902C/", 
            position: new google.maps.LatLng(glat,glon),
            map: map
        });

    var marker1 = new google.maps.Marker({
                icon: " http://www.googlemapsmarkers.com/v1/A/67BF4B/000000/00902C/", 
                position: new google.maps.LatLng(hlat,hlon),
                map: map
            });  
    //THIS IF STATEMENT IS NOT WORKING ... WHAT CAN I USE INSTEAD OF THIS 
        if(latlng1==latlng2)
            marker1.setAnimation(google.maps.Animation.BOUNCE); 

    directionsDisplay.setMap(map);
    directionsDisplay.setPanel(document.getElementById("panel"));
    var request = {
      origin: latlng1,
      destination:latlng2,
      travelMode: google.maps.DirectionsTravelMode.DRIVING
      };
    directionsService.route(request, function(response, status) {
      if (status == google.maps.DirectionsStatus.OK) {
        directionsDisplay.setDirections(response);
       }
    }); 

尝试在LatLng中使用equals方法来比较两个位置

change if(latlng1==latlng2) to if(latlng1.equals(latlng2))

要确定两个google.maps.LatLng对象是否在同一位置,请选择一个距离(如0.1米),计算它们之间的距离,如果小于阈值,则假设它们在同一位置。比较对象只有在它们是相同的对象时才返回true。比较两个浮点数是有问题的,比较两对浮点对象更是如此。

var SameThreshold = 0.1;
if (google.maps.geometry.spherical.computeDistanceBetween(latlng1,latlng2) < SameThreshold)
   marker1.setAnimation(google.maps.Animation.BOUNCE); 

确保包含几何库

  • 开发人员指南
  • 参考