Cesium获取经度 ,纬度,高度
实例代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>获取坐标转经纬度</title>
<!--引入Cesium框架和部件css-->
<script src="../ThirdParty/Cesium/Cesium.js"></script>
<link rel="stylesheet" href="../ThirdParty/Cesium/Widgets/widgets.css">
</head>
<body>
<!-- Cesium 容器 -->
<div id="cesiumContainer" style="width:100%;height:100%"></div>
<span id="mes" style="position: absolute;top:20px;left: 20px;z-index: 2;color: white;"></span>
<!-- 应用代码 -->
<script >
//资源访问key,可以换成你的
Cesium.Ion.defaultAccessToken = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiI4MWI5NTY0Mi1iOGE3LTQ3ZTMtOGQ4OC03NThiN2VkZGI4NTYiLCJpZCI6NzY2Niwic2NvcGVzIjpbImFzbCIsImFzciIsImFzdyIsImdjIl0sImlhdCI6MTU1MDIyNTM5OX0.2Abc9p46PA9kJ3E-BaKMXiyb0rvgo7AFUR1nR78VF7c';
//创建容器
var viewer=new Cesium.Viewer('cesiumContainer',{
})
//获取事件触发所在的 html Canvas容器
var canvas=viewer.scene.canvas;
//获取事件句柄
var handler=new Cesium.ScreenSpaceEventHandler(canvas);
//处理事件函数
handler.setInputAction(function(movement){
//拾取笛卡尔坐标
var ellipsoid=viewer.scene.globe.ellipsoid;//全局椭球体
var cartesian=viewer.scene.camera.pickEllipsoid(movement.endPosition,ellipsoid)//拾取鼠标在椭圆上的结束点笛卡尔坐标点
//转化笛卡尔坐标 为经纬度
var mesDom=document.getElementById('mes');
if(cartesian){
var cartographic=ellipsoid.cartesianToCartographic(cartesian);//笛卡尔坐标转制图坐标
var coordinate="经度:"+Cesium.Math.toDegrees(cartographic.longitude).toFixed(2)+",纬度:"+Cesium.Math.toDegrees(cartographic.latitude).toFixed(2)+
"相机高度:"+Math.ceil(viewer.camera.positionCartographic.height);
mesDom.innerHTML=coordinate;
mesDom.style.display="block";
}else{
mesDom.style.display="none";
}
},Cesium.ScreenSpaceEventType.MOUSE_MOVE);//监听的是鼠标滑动事件
</script>
</body>
</html>
说明
步骤:
- 加事件
- 事件处理中,获取椭球体笛卡尔坐标
- 笛卡尔坐标转制图坐标
- 获取html Dom元素,显示信息
详细
- 加事件 在Cesium中先new事件句柄,然后设置处理输入动作函数action,第二个参数是枚举,实际值为数字
var handler=new Cesium.ScreenSpaceEventHandler(canvas)
handler.setInputAction(处理函数:匿名函数/自定义函数的名,事件类型:Cesium.ScreenSpaceEventType.MOUSE_MOVE);
- 事件处理 在处理函数中写,事件处理代码获取坐标
//拾取笛卡尔坐标
var ellipsoid=viewer.scene.globe.ellipsoid;//全局椭球体
var cartesian=viewer.scene.camera.pickEllipsoid(movement.endPosition,ellipsoid)//拾取鼠标在椭球体上的结束点笛卡尔坐标点 pickEllipsoid 拾取椭球体
- 转坐标为经纬度,使用Cesium的Math toDegrees转度数
转度数: Cesium.Math.toDegrees()
经度:cartesian.longitude
纬度:cartesian.latitude
高度:使用的是相机所在位置的高度 viewer.camera.positionCartographic.height
- 显示 使用JS dom API 如果获取到则显示,获取不到则不显示
var dom=document.getElementById("id")
dom.style.innerHTML=字符串值
- 加事件 在Cesium中先new事件句柄,然后设置处理输入动作函数action,第二个参数是枚举,实际值为数字
本文由 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为: 2019/02/20 20:18
Cesium获取经度 ,纬度,高度的更多相关文章
- IOS获取经度纬度
仔细研究了一下SDK文档,再结合网上的方法,写了这一个简单的获取经纬度的方法,大家看看就好. 首先要导入CoreLocation.Frame 包 .h 文件 1 2 3 4 5 6 7 8 9 #im ...
- 飞机3D轨迹绘制(经度-纬度-高度)
使用Python绘制 #绘制三维直线图,将飞机飞行的航迹用(经度,纬度和高度)来描述 #******************************************************** ...
- HTML5根据浏览器获取经度和纬度(百度API)
网页获取用户位置信息的办法1 调用百度地图的地图标注功能,通过百度地图API获取对应的经度和纬度进而获取地区信息 优点是比较准确,缺点是需要用户自己选择位置2 通过H5 geolocation属性获取 ...
- js通过高德地图获取当前位置的经度纬度
效果图如下: 已经获取到了经度纬度了 代码如下: <!doctype html> <html> <head> <meta charset="utf- ...
- 高德JSAPI获取当前所在位置的经度纬度
这是在浏览器中的效果: 控制台打印出来的就是经度纬度的值 代码如下: <!doctype html> <html> <head> <meta charset= ...
- iOS之 利用通知(NSNotificationCenter)获取键盘的高度,以及显示和隐藏键盘时修改界面的注意事项
我们在开发中会遇到这样的情况:调用键盘时需要界面有一个调整,避免键盘遮掩输入框. 但实现时你会发现,在不同的手机上键盘的高度是不同的.这里列举一下: //获取键盘的高度 /* iphone 6: 中文 ...
- 动态获取div的高度 随着窗口变化而变化
// 1.jq法 <script> var winHeight = $(window).height(); $("#show").css("height&qu ...
- Android 动态获取ListView的高度
public static void setListViewHeightBasedOnChildren(ListView listView) { ListAdapter listAdapter = l ...
- jquery获取高度错误(可以获取到宽度,但获取不到高度),及解决办法
<div class="foo"> <div style="display: none;"> 3333333 </div> ...
随机推荐
- Python 使用gevent实现多任务
import gevent import time # 如果需要默认的 time.sleep(0.5) 需要打补丁 from gevent import monkey monkey.patch_all ...
- 善用#waring,#pragma mark 标记
在项目开发中,我们不可能对着需求一口气将代码都写好.开发过程中肯定遇到诸如需求变动,业务逻辑沟通,运行环境的切换等这些问题.当项目大的时候,如果木有形成统一的代码规范,在项目交接和开发人员沟通上将会带 ...
- 3.JUC之volatile
原文链接:http://blog.csdn.net/zteny/article/details/54888629 一.简介 volatile是Java语言的关键字,用来修饰可变变量(即该变量不能被fi ...
- github发布版本
github发布版本后再pacakgist能拉取到需要发布版本 本地 mac@macdeMacBook-Pro:/www/tool$ git add . mac@macdeMacBook-Pro:/w ...
- layui 后台分页
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- Linux命令——getent
简介 getent命令帮助用户administrative databases中查找相关信息.administrative databases包括: passwd – can be used to c ...
- 9.1: 请每个小组在 cnblogs.com 上面创建团队博客,第一个博客把小组成员都介绍一下 #团队博客作业1------------------答题者:徐潇瑞
大家好,我们这个团队的名字叫14组之家,之所以这么叫,因为我们是在章亦葵老师的现代软件工程课上成立为14组,而且我们每个组员在这个小家庭中都感受到温暖,我们互相协作,互相配合,来完成我们的任务. 首先 ...
- python中IO多路复用、协程
一.IO多路复用 IO多路复用:检测多个socket是否已经发生变化(是否已经连接成功/是否已经获取数据)(可读/可写) import socket def get_data(key): client ...
- mysql官方下载安装教程(centos)
Linux下Mysql 5.6.30 tar包安装 (2016-04-27 22:45:39) 转载▼ 环境:centos 6.4 x64 先下载mysql安装包 打开 http://dev.mysq ...
- 神经网络(1)--Non-linear hypotheses,为什么我们要学习神经网络这种算法来处理non-linear hypotheses
神经网络(1)--No-linear hypotheses 为什么我们已经有了linear regression与logistic regression算法还要来学习神经网络这个另外的算法呢,让我们来 ...