经纬度

Openlayers Projection导致经纬度颠倒问题

拈花ヽ惹草 提交于 2019-12-03 16:57:21
问题: openlayers3调用TileWMS接口,实现Openlayers加载Geoserver转发的ArcGIS切片时,web墨卡托(wkid3857)没有问题,但是WGS84(wkid4326)就不行。 问题排查: 1、查看控制台,发现报错400,这个是由于格式错误引起的 2、于是我把链接复制出来粘贴到浏览器观察,发现是BBOX的经纬度反了。 &BBOX=39.387925644409165%2C115.94328881619128%2C39.99706766190172%2C116.55243083368384 变成了BBOX=纬度&经度&纬度&经度了 3、我把BBOX修正,再放到浏览器打开,发现可以正常加载。看来问题找到了,就是构造的时候bbox的问题,可这是怎么造成的呢? 4、网上都没找到原因,实在不行了决定咬咬牙跟源码吧。 5、源码跟到这里发现了问题:获取坐标系的坐标轴顺序,如果是"ne"就把bbox构造经纬度反一反。为啥呢? 6、原来openlayers在操作地图时,如果用到坐标系的,则会根据坐标系先判断一下坐标顺序,WGS84默认顺序是(纬度,经度,高度),web墨卡托默认是(x,y,z) 7、我们用的EPSG:4326的坐标系,顺序是neu,源码中被if条件捕获,bbox被转了 解决方案: 1、最终找到问题,就要把他消灭

根据输入内容实现百度地图插件定位

拥有回忆 提交于 2019-12-03 11:03:40
实现思路:1.根据用户输入地址查询出经纬度坐标。      2.将经纬度坐标传入展示地图页面,初始化定位。      3.将最后确定的经纬度坐标存入对应字段中。 1.js实现根据用户输入地址获取其经纬度 this.checkmap=function(){ var address = LEAP.getValue(this.getMD("address")); var ret = this.request("nvsi_getAreaInMap",{par:{location:address}}); //调用后台方法 if(ret.result){ Lng = ret.result.location.lng; Lat = ret.result.location.lat; LEAP.setValue(document.getElementById("longitude"),Lng); LEAP.setValue(document.getElementById("latitude"),Lat); } Lng = LEAP.getValue(this.getMD("longitude")); Lat = LEAP.getValue(this.getMD("latitude")); this.Form = this.forms("swmscheckmapinfo", "insert");

oracle数据库根据经纬度空间查询范围内的点集

匿名 (未验证) 提交于 2019-12-03 00:38:01
矩形和多边形区域: select * from tableName a where sdo_geom.Relate(mdsys.sdo_geometry(2003, 4326, null, mdsys.sdo_elem_info_array(1, 1003, 3), mdsys.sdo_ordinate_array( points)), 'ANYINTERACT', mdsys.sdo_geometry(2001,4326,mdsys.sdo_point_type(a.latitude ,a.longitude ,null),null,null),0.001)= 'TRUE' 圆形区域: select * from tableName A where SQRT(POWER(A.LONGITUDE(这里是经度) - 116.3676095557983, 2) + POWER(A.LATITUDE(这里是纬度) - 39.913205912837014, 2)) <= 0.039790863734664776(这里是圆形区域) 线性区域: select * from tableName where sdo_Geom.within_distance(MDSYS.SDO_GEOMETRY(2002,4326,NULL,MDSYS.SDO_ELEM_INFO_ARRAY(1,2,1)

计算两个点的经纬度的距离

匿名 (未验证) 提交于 2019-12-03 00:22:01
package com.yuncai.core.common.utils ; import java.util.HashMap ; import java.util.Map ; /** * 计算两个坐标的距离 * @author audaque * */ public class DistanceUtils { private static final double EARTH_RADIUS = 6378137 ; //赤道半径(单位m) private DistanceUtils (){ } /** * 转化为弧度(rad) * */ private static double rad ( double d) { return d * Math. PI / 180.0 ; } /** * 基于googleMap中的算法得到两经纬度之间的距离,计算精度与谷歌地图的距离精度差不多,相差范围在0.2米以下 * @param lng1 第一点的精度 * @param lat1 第一点的纬度 * @param lng2 第二点的精度 * @param lat2 第二点的纬度 * @return 返回的距离(凑整),单位m * */ public static int getDistance ( double lng1 ,double lat1 ,double lng2 , double

如何用js调用百度地图api接口

匿名 (未验证) 提交于 2019-12-03 00:21:02
操作步骤: 1、先百度搜索百度地图api 2、登录进去,找到javascript API,下载下来 3、然后点击控制台,点应用,新建一个应用,然后就会有一个api 4、在javascript页面有很多功能,大家可以根据自己的需求选择,这里我选取的就是地图上那个红点,然后还有就是默认的坐标是北京的经纬度,大家可以自己修改经纬度 比如:百度搜索“拾取坐标系统”,然后输入位置,复制右上角的经纬度 5、代码部分:点击示例demo 找到设置点的弹跳动画,复制代码到编辑器中,把密钥和经纬度坐标复制进去就会得到文章开头的效果了。 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> <style type="text/css"> body, html,#allmap {width: 100%;height: 100%;overflow: hidden;margin:0;font-family:"微软雅黑";} </style> <!-- 百度地图的js文件 --> <script type="text/javascript" src="http

Cesium中的几种坐标和相互转换【转】

匿名 (未验证) 提交于 2019-12-03 00:17:01
几个重要的坐标对象: 1.世界坐标 Cartesian3:笛卡尔空间直角坐标系 new Cesium.Cartesian3(x, y, z) 可以看作,以椭球中心为原点的空间直角坐标系中的一个点的坐标。 2.经纬度 地理坐标系,坐标原点在椭球的质心。 经度:参考椭球面上某点的大地子午面与本初子午面间的两面角。东正西负。 纬度 :参考椭球面上某点的法线与赤道平面的夹角。北正南负。 Cesuim中没有具体的经纬度对象,要得到经纬度首先需要计算为弧度,再进行转换。 3.弧度 Cartographic new Cesium.Cartographic(longitude, latitude, height) 这里的参数也叫做,longitude,latitude,即经度和纬度。 但是是用弧度表示的经纬度,经纬度其实就是角度,可以看上面的解释。弧度即角度对应弧长是半径的倍数。 角度转弧度 π/180×角度 弧度变角度 180/π×弧度 几种转换 1. 经纬度转换为世界坐标 第一种方式:直接转换: Cesium.Cartesian3.fromDegrees(longitude, latitude, height, ellipsoid, result) longitude:经度 latitude:纬度 height:高度 ellipsoid:椭球体: 第二种方式:先转换成弧度再转换 var

根据IP获取经纬度 js

匿名 (未验证) 提交于 2019-12-02 23:57:01
<html xmlns = "http://www.w3.org/1999/xhtml" > <head runat = "server" > <title></title> <script src = "https://code.jquery.com/jquery-3.4.1.min.js" ></script> <script src = "http://pv.sohu.com/cityjson?ie=utf-8" ></script> <script> function getXYbyIP () { var url = "https://api.map.baidu.com/location/ip?ak=HQi0eHpVOLlRuIFlsTZNGlYvqLO56un3&coor=bd09ll" ; $ . ajax ({ url : url , type : 'POST' , dataType : 'JSONP' , async : false , cache : true , success : function ( data ) { console . log ( data ) }, error : function ( data ) { } }); } getXYbyIP (); </script> </head> <body> </body> </html>    来源

Android原生方式获取经纬度

匿名 (未验证) 提交于 2019-12-02 23:40:02
两种定位方式:GPS定位、WiFi定位 优劣: GPS定位相比Wifi定位更精准且可在无网络情况下使用,但在室内基本暴毙无法使用 WiFi定位没有室内外限制也不需要开启GPS但需要联网,另外测试发现WiFi定位时onLocationChanged函数(用于监听经纬度变化)触发间隔无法小于30s public class GPSActivity extends AppCompatActivity { public static final int LOCATION_CODE = 301; private LocationManager locationManager; private String locationProvider = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getLocation(); } private void getLocation () { locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); //获取所有可用的位置提供器 List<String> providers =

如何通过经纬度获取省市区

匿名 (未验证) 提交于 2019-12-02 23:39:01
调用百度地图的api,直接上代码: $.ajax({ url: 'http://api.map.baidu.com/geocoder/v2/?ak=wWYw0yCb8ntXmSgTxTx40vKR&callback=renderReverse&location=' + latitude + ',' + longitude + '&output=json&pois=1', type: "get", dataType: "jsonp", jsonp: "callback", success: function (data) { $("#province").val(data.result.addressComponent.province); $("#city").val(data.result.addressComponent.city); $("#district").val(data.result.addressComponent.district); if (typeof callback == "function") { callback(data); } } , error:function(){ $("#province").val(""); $("#city").val(""); $("#district").val(""); } }); 文章来源: https:/