Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.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
Java/Javascript将用户位置设置为中间位置的软件/网元_Java_Javascript_Google Maps Api 3_Latitude Longitude_Delta - Fatal编程技术网

Java/Javascript将用户位置设置为中间位置的软件/网元

Java/Javascript将用户位置设置为中间位置的软件/网元,java,javascript,google-maps-api-3,latitude-longitude,delta,Java,Javascript,Google Maps Api 3,Latitude Longitude,Delta,我试图做的是计算给定位置的SW、NE,然后计算用户中心位置的增量。这将导致所有位置和用户在中心的位置 但不幸的是,它没有任何一个快速的建议 public void calculateMapFitBounds(GeoLocation userLocation, List<GeoLocation > contents, Map<String, GeoLocation> latlngBounds){ //SW double minLat = u

我试图做的是计算给定位置的SW、NE,然后计算用户中心位置的增量。这将导致所有位置和用户在中心的位置

但不幸的是,它没有任何一个快速的建议

public void calculateMapFitBounds(GeoLocation userLocation, List<GeoLocation > contents, Map<String, GeoLocation> latlngBounds){

        //SW
        double minLat = userLocation.getLatitude();
        double minLng = userLocation.getLongitude();

        //NE
        double maxLat = -9999;
        double maxLng = -9999;

        for(GeoLocation content: contents){

            /*
             * Populating Top left cordinate (SW)
             */
            minLat = Math.min(minLat, content.getLatitude());
            minLng = Math.min(minLng, content.getLongitude());

            /*
             * Populating Bottom right cordinate (NE)
             */
            maxLng = Math.max(maxLng, content.getLongitude()) ;
            maxLat = Math.max(maxLat, content.getLatitude());
        }

        /*
         * Calculating Delta fit bounds
         */

        double latDelta = Math.max(Math.abs(minLat - userLocation.getLatitude()), Math.abs(maxLat-userLocation.getLatitude()));

        double lngDelta = Math.max(Math.abs(maxLng - userLocation.getLongitude()), Math.abs(minLng - userLocation.getLongitude()));

        //Calculating SW
        minLat = userLocation.getLatitude()+ latDelta;
        minLng = userLocation.getLongitude()+ lngDelta;

        latlngBounds.put("swLatLng", new GeoLocation(minLat, minLng));


        //Calculating NE
        maxLat = userLocation.getLatitude()- latDelta;
        maxLng = userLocation.getLongitude()-lngDelta;

        latlngBounds.put("neLatLng", new GeoLocation(maxLat, maxLng));

    }
错误的标志(下面已更正):

但您肯定应该告诉问题所在,以及浏览器错误控制台中是否有错误消息

ps:API v3有一种更简单的方法

从什么意义上说它“不起作用”?未编译、出现运行时错误、出现意外结果或。。。?是Java部分不起作用还是JavaScript部分不起作用?(或者两者都有?)JavaScript看起来无效,特别是不能像使用
$那样在变量名中使用感叹号!swLatLng
$表示我正在使用速度views@Faisal你有这个页面的链接吗?或者自己检查计算变量的值。顺便说一句,看看这里-API 3允许自动发布stackover flow链接,我看不出它是如何使用fitbounds的特定管脚进行居中的?@Faisal khan也阅读了这一点,它解释了一切)@Faisal khan因此,您可以在用户所在的位置设置地图中心,扩展所有位置的边界,然后调用fitbounds。
var swLatLn = new google.maps.LatLng($!swLatLng.latitude, $!swLatLng.longitude, false);
        var neLatLn = new google.maps.LatLng($neLatLng.latitude, $neLatLng.longitude, false);

        var bounds = new google.maps.LatLngBounds(swLatLn, neLatLn);
        googleMap.fitBounds(bounds);
//Calculating SW
minLat = userLocation.getLatitude() - latDelta;
minLng = userLocation.getLongitude()- lngDelta;


//Calculating NE
maxLat = userLocation.getLatitude() + latDelta;
maxLng = userLocation.getLongitude()+ lngDelta;