- 【Cesium】根据相机距离隐藏或显示模型
鱼遇雨愈愉
Cesiumcesiumjavascriptwebgl前端
1.根据相机到模型的距离,显示或隐藏具体模型/***@description:模型的可见性设置*@paramentity{Entity}隐藏的model实体*@paramdistance{Number}可见距离*@return{*}*/functionshowOrHidden(entity,distance){letpostRenderCallback=()=>{varcameraPosition
- 【CesiumJS-5】绘制动态路线实现飞行航线、汽车轨迹、路径漫游等
神似彭于晏的男人
WebGLcesium前端webgl
实现效果前言Cesium中,动态路线绘制的核心是借助CZML格式,CZML是一种用来描述动态场景的JSON数组,可以用来描述点、线、多边形、体、模型及其他图元,同时定义它们是怎样随时间变化的;CZML主要做三件事:1.添加模型信息2.添加路径信息3.计算速度,修改时间CZML数据格式[{"id":"document","version":"1.0","clock":{"interval":"202
- cesium+turf.js实现缓冲区分析
Lee-j
javascript前端vue.js
1.实现效果可以在地图上绘制点,线,面,并且根据绘制的点线面绘制缓冲区。2.实现工具1.用cesium的handle进行点线面绘制。2.用turf.buffer函数对绘制的点线面进行缓冲区分析。3.在地图上绘制缓冲区。3.缓冲区工具类代码import{buffer,point,lineString,polygon,}from'@turf/turf';importbusfrom'../../even
- Cesium实战三:飞行航线动画
の月光の
Cesiumgis前端
飞行航线追踪可视化从旧金山到哥本哈根的真实航班。1、获取点位数据:构建飞行跟踪器–Cesium(cesium.com)2、在地图上添加飞行点位:循环遍历点位数据,利用Entity直接添加点至地图上。//添加飞行点位constaddFlightPoint=()=>{constlength=filghtData.length;for(leti=0;i{constlength=filghtData.le
- cesium-天际线
醉书生ꦿ℘゜এ
cesiumvue.jsjavascriptelementuicesium
主要是两个着色器letpostProccessStage=newCesium.PostProcessStage({//unform着色器对象textureScalefragmentShader://声明一个纹理采样器colorTexture用于读取纹理颜色'uniformsampler2DcolorTexture;'+//声明一个纹理采样器depthTexture用于读取深度纹理'uniforms
- Cesium插件系列——3dtiles压平
搞GIS图形的sky.
cesiumcesium
本系列为自己基于cesium写的一套插件具体实现。这里是根据Cesium提供的CustomShader来实现的。在CustomShader的vertexShaderText里,需要定义vertexMain函数,例如下:structVertexInput{Attributesattributes;FeatureIdsfeatureIds;Metadatametadata;MetadataClassm
- Cesium加载geoserver发布的arcgis切片 4326坐标系
ponGISer
Cesium学习笔记cesiumgeoserver
constprovider=newCesium.WebMapTileServiceImageryProvider({url:"http://192.168.1.200:8090/geoserver/gwc/service/wmts/rest/bg_light_map84/{style}/{TileMatrixSet}/{TileMatrixSet}:{TileMatrix}/{TileRow}/{
- Cesium for Unity包无法加载
牙膏上的小苏打2333
Unityunitycesium
太上老君急急如律⚡令⚡关闭UnityHub启动梯子cmd启动UnityHub关闭UnityHub启动梯子cmd启动UnityHub把批处理启动文件中的exe的路径换成自己的安装目录!保存后双击启动UnityHub,再打开项目即可顺利加载包。
- 基于GeoServer开发的地理场景可视化系统
不爱赖床的懒虫
笔记服务器运维geoserver
基于GeoServer的地理场景可视化系统文章目录基于GeoServer的地理场景可视化系统系统总体架构设计二维地理场景可视化设计与实现图层预览模块图层组切换模块WMS服务模块三维地理场景可视化设计与实现基于Cesium的三维地形仿真二、三维联动模块系统总体架构设计总体框架主要分为地图服务器管理模块和地理场景可视化模块这两个部分。地图服务器管理模块,主要针对GeoServer开源服务器的协调调度管
- Vue中$root的使用方法
还是大剑师兰特
#vue2实战指南vue.jsvue的root大剑师
查看本专栏目录关于作者还是大剑师兰特:曾是美国某知名大学计算机专业研究生,现为航空航海领域高级前端工程师;CSDN知名博主,GIS领域优质创作者,深耕openlayers、leaflet、mapbox、cesium,canvas,webgl,echarts等技术开发,欢迎加底部微信,一起交流。热门推荐内容链接1openlayers从基础到精通,300+代码示例2leaflet热门分解学习教程,15
- 参数化三维地下管网建模系统MagicPipe3D操作视频
MagicUrban
3d智慧城市地下管网BIMgis
经纬管网建模系统MagicPipe3D(www.magic3d.net),本地离线参数化构建地下管网三维模型(包括管道、接头、附属设施等),输出标准3Dtiles服务、Obj模型等格式,支持Cesium、Unreal、Unity、Osg等引擎加载进行三维可视化、语义查询、专题分析,提供单机和Usb狗2种许可方式,欢迎下载试用!参数化三维地下管网建模软件MagicPipe3D宣传操作视频
- Cesium 问题——加载 gltf 格式的模型之后太小,如何让相机视角拉近
博客zhu虎康
Cesium数据可视化
文章目录问题分析问题刚加载的模型太小,如何拉近视角放大分析在这里有两种方式进行拉近视角,一种是点击复位进行视角拉近一种是刚加载就直接拉近视角//模型三加载this.damModel=newCesium.Entity({name:"gltf模型",position:</
- CSS特效027:超可爱的小狗狗,女孩子都喜欢
还是大剑师兰特
#css常用示例100+css前端css小狗
为什么当初选择计算机行业?科技总是迷人的,通过计算机可以造出各种美妙的设计。后来工作,更加感觉到可视化的魅力,于是乎更加的专注于canvas,CSS,openlayers,leaflet,cesium。。。CSS常用示例100+专栏目录本专栏记录的是经常使用的CSS示例与技巧,主要包含CSS布局,CSS特效,CSS花边信息三部分内容。其中CSS布局主要是列出一些常用的CSS布局信息点,CSS特效主
- 分享CesiumWeb三维地球
:mnong
web
vue3+cesium官方示例:CesiumSandcastle逐冰而上①|珠峰冰川密码:来自海拔6530米的气候警钟_绿政公署_澎湃新闻-ThePaperhttps://www.thepaper.cn/newsDetail_forward_128647
- SuperMap iClient3D for WebGL教程-description描述属性
Mr桔子先生
本节教程来讲解entity的description属性使用,官方文档解释为指定此实体的HTML描述的字符串属性,也就是说是一段字符串,只是这段字符串是HTML描述,看起来还是比较绕,下面来看下这个属性到底是如何使用的。属性信息从这里可以看出,entity的description属性信息是在实体被选中之后,被用于填充到infobox中,展示entity的属性信息。如果要使用Cesium自带的info
- UE4 WebUI插件使用指南
netcy
UE4ue4前端
本文介绍UE4中通过Cesium插架加载本地倾斜摄影模型。CesiumforUnreal插件运行在UE环境何总运行Cesium,这样方便做一个GIS应用。安装CesiumforUnreal插件在UE虚幻商城中,搜索“CesiumforUnreal”,然后下载插件,下载完成后,可以点击安装到引擎:可以安装到引擎,需要UE4.26以上,笔者使用4.27版本,也可以用于UE5.启用插件打开UE编辑器,创
- Vue.js2+Cesium1.103.0 十三、通过经纬度查询 GeoServer 发布的 wms 服务下的 feature 对象的相关信息
liuzhenghe30265
vue.js前端javascriptgis
Vue.js2+Cesium1.103.0十三、通过经纬度查询GeoServer发布的wms服务下的feature对象的相关信息Demo{{position}}{{info}}/*eslint-disableno-undef*/importaxiosfrom'axios'exportdefault{data(){return{position:'',info:''}},computed:{},wa
- Vue.js2+Cesium1.103.0 十四、绘制视锥,并可实时调整视锥姿态
liuzhenghe30265
vue.js前端javascriptgis
Vue.js2+Cesium1.103.0十四、绘制视锥,并可实时调整视锥姿态Demowidthheightfovnearfarheadingpitchroll/*eslint-disableno-undef*//*eslint-disablenew-cap*/importCreateFrustumfrom'./CreateFrustum'exportdefault{name:'ConeOfVis
- Vue.js2+Cesium1.103.0 十五、绘制视锥,并可实时调整视锥姿态
liuzhenghe30265
vue.js前端javascriptgis
Vue.js2+Cesium1.103.0十五、绘制视锥,并可实时调整视锥姿态Demo/*eslint-disableno-undef*//*eslint-disablenew-cap*//*eslint-disableno-unused-vars*//***根据两个坐标,计算连接的线段与正北的夹角**/import*asturffrom'@turf/turf'exportdefault{data
- cesium系列篇:Entity vs Primitive 源码解析(从Entity到Primitive)01
游无穷
Cesiumcesiumentityprimitive源码解析
Entity和Primitive的关系官方教材中提到,PrimitiveAPI主要适用于图形渲染开发者,EntityAPI则适用于数据驱动的可视化,而EntityAPI的底层则使用了PrimitiveAPI。下面我们将通过cesium的源码探究当添加entity对象时,是如何在底层调用对应的PrimitiveAPI,创建相应的primitive对象。这篇文章中,我们将先从viewer初始化开始,探
- cesium系列篇:Entity vs Primitive 源码解析(从Entity到Primitive)02
游无穷
Cesiumjavascriptcesiumentityprimitive源码解析
上篇文章中,我们介绍了使用viewer.entities.add添加entity之后的信号传递以及最后entity对象被传递到GeometryVisualizer;这篇文章,我们则介绍如何在逐帧渲染的过程中根据GeometryVisualizer中的entity对象创建相应的primitive这是下文中涉及到的类的类图,从中可以清晰的了解各个对象之间的关系,下面我们结合代码来仔细讲解。循环的一帧我
- Cesium 性能优化 - 学习笔记
你大爷的,这都没注册了
Cesium学习笔记
1.Cesium性能优化-学习笔记开启FPS显示当前帧率viewer.scene.debugShowFramesPerSecound=true;关闭太阳,月亮,天空盒,雾等相关特效viewer.scene.moon.show=false;viewer.scene.fog.enabled=false;viewer.scene.sun.show=false;viewer.scene.skyBox.sh
- Cesium中给实体添加渐变色
你大爷的,这都没注册了
前端javascript
Cesium中给实体添加渐变色添加实体constredWall=viewer.entities.add({name:'一个红墙',wall:{positions:Cesium.Cartesian3.fromDegreesArrayHeights([121.444409,31.247417,200.8,121.533521,31.235685,280.0,121.563273,31.198347,2
- Cesium中添加entitie模型,实现贴地。
你大爷的,这都没注册了
vuejavascript
1.Cesium中添加entitie模型,实现贴地。2.添加模型constcreateModel=(url)=>{constentity=viewer.entities.add({name:'这是一个模型',position:Cesium.Cartesian3.fromDegrees({-123.0744619,44.0503706,100}),model:{uri:url,minimumPixe
- Cesium 中对entities的查询,删除操作
你大爷的,这都没注册了
Cesium前端数据库javascript
1.Cesium中对entities的查询,删除操作在Cesium中我们如何对entities进行查询,和删除操作查询操作viewer.entities.getById('myId')删除操作viewer.entities.removeById('myId');全部删除viewer.entities.removeAll();这里要传入一个ID,这个ID就是我们在创建entities时的IDcons
- cesium 绘制圆饼图升级版
阿狸狸阿狸狸呀
前端javascripthtml
上次画的是椭圆,业务要求正圆letlist=[0,45,90,135,180,225,270,315];letcolorList=['#2D8CF0','#2F6CF0','#333666','#1F8CD0','#5e6C00','#112255','#999000','#452341','#999000'];letradiusList=[1000,1000,1000,1000,1000,100
- Cesium绘制有高度的饼状图
阿狸狸阿狸狸呀
前端webgl
letlist=[0,45,90,135,180,225,270,315];letcolorList=['#2D8CF0','#2F6CF0','#333666','#1F8CD0','#5e6C00','#112255','#999000','#452341','#999000'];letradiusList=[1000,2000,1000,1000,1000,1000,1000,1000,10
- Cesium+MapboxGL+VectorTile_1
seelingzheng
CesiumCesium
这里主要讲述Cesium通过MapboxGL加载不同服务的情况,分别包括服务部署和发布,以及使用。使用MVTImageryProvider扩展通过最后面提供的地址,可以下载到相关需要的扩展文件,使用可以直接按照相关说明文档使用即可构建ImageryProviderletoptions={style:Object//样式对象,必选.}letprovider=newImageryProvider(op
- Cesium+MapboxGL+VectorTile -2
seelingzheng
Cesiummvt矢量瓦片
这里主要讲述Cesium通过MapboxGL加载不同服务的情况,分别包括服务部署和发布,以及使用。Cesium+MapboxGL+VectorTile-1调用postgis服务环境搭建,本文基于mac系统来编写brewinstallpostgreserror:Commandfailedwithexit128:git执行brew-v,可以看到fatal:unsaferepository。。。设置sa
- mapbox+deck.gl加载倾斜摄影模型3dtiles
阳光男孩~Taner
mapboxdeck.gljavascript
一、背景做三维WebGIS开发的朋友们都知道,我们加载倾斜摄影模型,一般使用cesium加载3dtiles格式的数据很简单,官网和网上都有很多例子,这里也不再详细赘述。但是在使用cesium场景中我们会遇到这样一个问题,在加载整个球的时候其实是影响了性能的,在加载局部小场景的时候我们是不需要加载整个地球的,例如我们在做智慧园区的项目时候,基本上只关注园区及其周边范围。如果加载整个地球无疑对资源开销
- 继之前的线程循环加到窗口中运行
3213213333332132
javathreadJFrameJPanel
之前写了有关java线程的循环执行和结束,因为想制作成exe文件,想把执行的效果加到窗口上,所以就结合了JFrame和JPanel写了这个程序,这里直接贴出代码,在窗口上运行的效果下面有附图。
package thread;
import java.awt.Graphics;
import java.text.SimpleDateFormat;
import java.util
- linux 常用命令
BlueSkator
linux命令
1.grep
相信这个命令可以说是大家最常用的命令之一了。尤其是查询生产环境的日志,这个命令绝对是必不可少的。
但之前总是习惯于使用 (grep -n 关键字 文件名 )查出关键字以及该关键字所在的行数,然后再用 (sed -n '100,200p' 文件名),去查出该关键字之后的日志内容。
但其实还有更简便的办法,就是用(grep -B n、-A n、-C n 关键
- php heredoc原文档和nowdoc语法
dcj3sjt126com
PHPheredocnowdoc
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Current To-Do List</title>
</head>
<body>
<?
- overflow的属性
周华华
JavaScript
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml&q
- 《我所了解的Java》——总体目录
g21121
java
准备用一年左右时间写一个系列的文章《我所了解的Java》,目录及内容会不断完善及调整。
在编写相关内容时难免出现笔误、代码无法执行、名词理解错误等,请大家及时指出,我会第一时间更正。
&n
- [简单]docx4j常用方法小结
53873039oycg
docx
本代码基于docx4j-3.2.0,在office word 2007上测试通过。代码如下:
import java.io.File;
import java.io.FileInputStream;
import ja
- Spring配置学习
云端月影
spring配置
首先来看一个标准的Spring配置文件 applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi=&q
- Java新手入门的30个基本概念三
aijuans
java新手java 入门
17.Java中的每一个类都是从Object类扩展而来的。 18.object类中的equal和toString方法。 equal用于测试一个对象是否同另一个对象相等。 toString返回一个代表该对象的字符串,几乎每一个类都会重载该方法,以便返回当前状态的正确表示.(toString 方法是一个很重要的方法) 19.通用编程:任何类类型的所有值都可以同object类性的变量来代替。
- 《2008 IBM Rational 软件开发高峰论坛会议》小记
antonyup_2006
软件测试敏捷开发项目管理IBM活动
我一直想写些总结,用于交流和备忘,然都没提笔,今以一篇参加活动的感受小记开个头,呵呵!
其实参加《2008 IBM Rational 软件开发高峰论坛会议》是9月4号,那天刚好调休.但接着项目颇为忙,所以今天在中秋佳节的假期里整理了下.
参加这次活动是一个朋友给的一个邀请书,才知道有这样的一个活动,虽然现在项目暂时没用到IBM的解决方案,但觉的参与这样一个活动可以拓宽下视野和相关知识.
- PL/SQL的过程编程,异常,声明变量,PL/SQL块
百合不是茶
PL/SQL的过程编程异常PL/SQL块声明变量
PL/SQL;
过程;
符号;
变量;
PL/SQL块;
输出;
异常;
PL/SQL 是过程语言(Procedural Language)与结构化查询语言(SQL)结合而成的编程语言PL/SQL 是对 SQL 的扩展,sql的执行时每次都要写操作
- Mockito(三)--完整功能介绍
bijian1013
持续集成mockito单元测试
mockito官网:http://code.google.com/p/mockito/,打开documentation可以看到官方最新的文档资料。
一.使用mockito验证行为
//首先要import Mockito
import static org.mockito.Mockito.*;
//mo
- 精通Oracle10编程SQL(8)使用复合数据类型
bijian1013
oracle数据库plsql
/*
*使用复合数据类型
*/
--PL/SQL记录
--定义PL/SQL记录
--自定义PL/SQL记录
DECLARE
TYPE emp_record_type IS RECORD(
name emp.ename%TYPE,
salary emp.sal%TYPE,
dno emp.deptno%TYPE
);
emp_
- 【Linux常用命令一】grep命令
bit1129
Linux常用命令
grep命令格式
grep [option] pattern [file-list]
grep命令用于在指定的文件(一个或者多个,file-list)中查找包含模式串(pattern)的行,[option]用于控制grep命令的查找方式。
pattern可以是普通字符串,也可以是正则表达式,当查找的字符串包含正则表达式字符或者特
- mybatis3入门学习笔记
白糖_
sqlibatisqqjdbc配置管理
MyBatis 的前身就是iBatis,是一个数据持久层(ORM)框架。 MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架。MyBatis对JDBC进行了一次很浅的封装。
以前也学过iBatis,因为MyBatis是iBatis的升级版本,最初以为改动应该不大,实际结果是MyBatis对配置文件进行了一些大的改动,使整个框架更加方便人性化。
- Linux 命令神器:lsof 入门
ronin47
lsof
lsof是系统管理/安全的尤伯工具。我大多数时候用它来从系统获得与网络连接相关的信息,但那只是这个强大而又鲜为人知的应用的第一步。将这个工具称之为lsof真实名副其实,因为它是指“列出打开文件(lists openfiles)”。而有一点要切记,在Unix中一切(包括网络套接口)都是文件。
有趣的是,lsof也是有着最多
- java实现两个大数相加,可能存在溢出。
bylijinnan
java实现
import java.math.BigInteger;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class BigIntegerAddition {
/**
* 题目:java实现两个大数相加,可能存在溢出。
* 如123456789 + 987654321
- Kettle学习资料分享,附大神用Kettle的一套流程完成对整个数据库迁移方法
Kai_Ge
Kettle
Kettle学习资料分享
Kettle 3.2 使用说明书
目录
概述..........................................................................................................................................7
1.Kettle 资源库管
- [货币与金融]钢之炼金术士
comsci
金融
自古以来,都有一些人在从事炼金术的工作.........但是很少有成功的
那么随着人类在理论物理和工程物理上面取得的一些突破性进展......
炼金术这个古老
- Toast原来也可以多样化
dai_lm
androidtoast
Style 1: 默认
Toast def = Toast.makeText(this, "default", Toast.LENGTH_SHORT);
def.show();
Style 2: 顶部显示
Toast top = Toast.makeText(this, "top", Toast.LENGTH_SHORT);
t
- java数据计算的几种解决方法3
datamachine
javahadoopibatisr-languer
4、iBatis
简单敏捷因此强大的数据计算层。和Hibernate不同,它鼓励写SQL,所以学习成本最低。同时它用最小的代价实现了计算脚本和JAVA代码的解耦,只用20%的代价就实现了hibernate 80%的功能,没实现的20%是计算脚本和数据库的解耦。
复杂计算环境是它的弱项,比如:分布式计算、复杂计算、非数据
- 向网页中插入透明Flash的方法和技巧
dcj3sjt126com
htmlWebFlash
将
Flash 作品插入网页的时候,我们有时候会需要将它设为透明,有时候我们需要在Flash的背面插入一些漂亮的图片,搭配出漂亮的效果……下面我们介绍一些将Flash插入网页中的一些透明的设置技巧。
一、Swf透明、无坐标控制 首先教大家最简单的插入Flash的代码,透明,无坐标控制: 注意wmode="transparent"是控制Flash是否透明
- ios UICollectionView的使用
dcj3sjt126com
UICollectionView的使用有两种方法,一种是继承UICollectionViewController,这个Controller会自带一个UICollectionView;另外一种是作为一个视图放在普通的UIViewController里面。
个人更喜欢第二种。下面采用第二种方式简单介绍一下UICollectionView的使用。
1.UIViewController实现委托,代码如
- Eos平台java公共逻辑
蕃薯耀
Eos平台java公共逻辑Eos平台java公共逻辑
Eos平台java公共逻辑
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
蕃薯耀 2015年6月1日 17:20:4
- SpringMVC4零配置--Web上下文配置【MvcConfig】
hanqunfeng
springmvc4
与SpringSecurity的配置类似,spring同样为我们提供了一个实现类WebMvcConfigurationSupport和一个注解@EnableWebMvc以帮助我们减少bean的声明。
applicationContext-MvcConfig.xml
<!-- 启用注解,并定义组件查找规则 ,mvc层只负责扫描@Controller -->
<
- 解决ie和其他浏览器poi下载excel文件名乱码
jackyrong
Excel
使用poi,做传统的excel导出,然后想在浏览器中,让用户选择另存为,保存用户下载的xls文件,这个时候,可能的是在ie下出现乱码(ie,9,10,11),但在firefox,chrome下没乱码,
因此必须综合判断,编写一个工具类:
/**
*
* @Title: pro
- 挥洒泪水的青春
lampcy
编程生活程序员
2015年2月28日,我辞职了,离开了相处一年的触控,转过身--挥洒掉泪水,毅然来到了兄弟连,背负着许多的不解、质疑——”你一个零基础、脑子又不聪明的人,还敢跨行业,选择Unity3D?“,”真是不自量力••••••“,”真是初生牛犊不怕虎•••••“,••••••我只是淡淡一笑,拎着行李----坐上了通向挥洒泪水的青春之地——兄弟连!
这就是我青春的分割线,不后悔,只会去用泪水浇灌——已经来到
- 稳增长之中国股市两点意见-----严控做空,建立涨跌停版停牌重组机制
nannan408
对于股市,我们国家的监管还是有点拼的,但始终拼不过飞流直下的恐慌,为什么呢?
笔者首先支持股市的监管。对于股市越管越荡的现象,笔者认为首先是做空力量超过了股市自身的升力,并且对于跌停停牌重组的快速反应还没建立好,上市公司对于股价下跌没有很好的利好支撑。
我们来看美国和香港是怎么应对股灾的。美国是靠禁止重要股票做空,在
- 动态设置iframe高度(iframe高度自适应)
Rainbow702
JavaScriptiframecontentDocument高度自适应局部刷新
如果需要对画面中的部分区域作局部刷新,大家可能都会想到使用ajax。
但有些情况下,须使用在页面中嵌入一个iframe来作局部刷新。
对于使用iframe的情况,发现有一个问题,就是iframe中的页面的高度可能会很高,但是外面页面并不会被iframe内部页面给撑开,如下面的结构:
<div id="content">
<div id=&quo
- 用Rapael做图表
tntxia
rap
function drawReport(paper,attr,data){
var width = attr.width;
var height = attr.height;
var max = 0;
&nbs
- HTML5 bootstrap2网页兼容(支持IE10以下)
xiaoluode
html5bootstrap
<!DOCTYPE html>
<html>
<head lang="zh-CN">
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">