今天给各位分享gis地图svg的知识,其中也会对gis地图开发工具进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
目录一览:
mapgis数据如何转化为SVG格式
直接转肯定是转不了的,mapgis没有提供该格式接口,不过你可以先转dxf,dxf是cad的标准交换格式,基本上所有矢量软件都提供跟dxf的接口,而且网上有很多cad(包括dxf格式)转svg的小工具。祝你成功!
svg格式怎么转成.shp格式,能在ArcGIS中打开?
svg格式转成.shp格式,能在ArcGIS中打开步骤:
*** 1
info/convert/image/svg2raster.03/en/SVGView.adobe://download.htm
添加微信好友, 获取更多信息
复制微信号
在上面网页中导入SVG格式的图片://download.exe" target="_blank"http.htm" target="_blank"http.com/pub/adobe/magic/svgviewer/win/3.03/en/SVGView.info/c
*** 2
是一个开放标准,不过有些浏览器(比如IE)可能要安装插件,还能导出保存为svg或其他格式的文件,如使用火狐浏览器就可以直接查看svg文件,可以通过浏览器打开. 使用“Adobe Illustrator”可以查看而且能够再次编辑svg文件。
gis多个图层地图用htmlcanvas截图获取不到
找到两个前端就能解决的 *** ,最后因为各种原因采用了 *** 二。
*** 一:
找到地图上的全部点,然后在canvas上面重绘一次。
html2canvas(this.$refs.target, {
...
useCORS: true, // 如果截图的内容里有图片,可能会有跨域的情况,加上这个参数,解决文件跨域问题
}).then((canvas) = {
let cans = canvas.getContext("2d");
//批量地图重新打点 加载图片
document.querySelectorAll("#mapView_layers image").forEach((item) = {
var obj = item;
var x = item.getAttribute("x");
var y = item.getAttribute("y");
var itemWidth = item.getAttribute("width");
var itemHeight = item.getAttribute("height");
console.log("item", item, x, y);
if (width == 8) {
cans.drawImage(obj, x, y, itemWidth, itemHeight);
} else {
cans.drawImage(
obj,
x ,
y - 1 - itemHeight / 2 ,
itemWidth,
itemHeight
);
}
});
...
//下面是截图代码
})
登录后复制
因为本身目标dom的position定位问题,最后打的点可能会出现偏移。
所以还要给html2canvas加几个属性: x , y , scrollX , scrollY。保险起见,再加上两个参数 width 和 height 。
本人是后面chrome测着没问题,但是给小伙伴测试的时候,他用的360浏览器还有个xx浏览器有点问题。干脆参数全加上。
screenShot() {
let canvasBox = this.$refs.target;
//获取目标div位置;
var tPosition = canvasBox.getBoundingClientRect();
console.log("size", tPosition);
// 获取父级的宽高
const width = parseInt(window.getComputedStyle(canvasBox).width);
const height = parseInt(window.getComputedStyle(canvasBox).height);
html2canvas(this.$refs.target, {
width: width,
height: height,
x: 0,
y: 0,
scrollY: -tPosition.y,
scrollX: -tPosition.x,
useCORS: true, // 如果截图的内容里有图片,可能会有跨域的情况,加上这个参数,解决文件跨域问题
}).then((canvas) = {
...
})
}
登录后复制
要是项目的地图是不可移动的,基本到这里就可以了。
但是地图只要一挪动。。一个新的bug出现了。。。。。整个地图画线打点层的偏移量和截图之前不一样。。。。 截图后,画线层偏的比原地图还要远,打点却还在原位没动过。。
这个问题需要修正svg的偏移,然后这个标注点绘制的时候也要加上一个偏移量。
地图偏移的bug后面再讲。
*** 二:(最后采用)
把svg中所有的image图片的href路径转换为base64编码格式。简单方便,不用考虑位置什么的问题,就是有些浏览器里面图片加载慢。。。setTimeout有时候要设置大一点。。
screenShot() {
let canvasBox = this.$refs.target;
//获取目标div位置;
var tPosition = canvasBox.getBoundingClientRect();
console.log("size", tPosition);
// 获取父级的宽高
const width = parseInt(window.getComputedStyle(canvasBox).width);
const height = parseInt(window.getComputedStyle(canvasBox).height);
//---------------------
//解决svg 内部image加载不了的问题,把image改为base64,配合setTimeout html2canvas使用
document.querySelectorAll("#mapView_layers image").forEach((item) = {
console.log("item", item);
var img = item.getAttribute("xlink:href");
console.log("href", img);
var image = new Image();
image.crossOrigin = "";
image.src = img;
image.onload = () = {
var base64 = getBase64Image(image);
item.setAttribute("xlink:href", base64); //更改href属性
};
});
//图片地址转为base64编码
function getBase64Image(img) {
var canvas = document.createElement("canvas");
canvas.width = img.width;
canvas.height = img.height;
var ctx = canvas.getContext("2d");
ctx.drawImage(img, 0, 0, img.width, img.height);
var ext = img.src.substring(img.src.lastIndexOf(".") + 1).toLowerCase();
var dataURL = canvas.toDataURL("image/" + ext);
return dataURL;
}
setTimeout(() = {
html2canvas(this.$refs.target, {
width: width,
height: height,
x: 0,
y: 0,
scrollY: -tPosition.y,
scrollX: -tPosition.x,
useCORS: true, // 如果截图的内容里有图片,可能会有跨域的情况,加上这个参数,解决文件跨域问题
}).then((canvas) = {
...
})
}, 200);
}
登录后复制
GIS地图: 是什么
GIS,全称:Geographic Information Science,地理信息科学的缩写。它是在计算机硬、软件系统支持下,对整个或部分地球表层(包括大气层)空间中的有关地理分布数据进行采集、储存、管理、运算、分析、显示和描述的技术系统。
1992年Goodchild提出的,与地理信息系统相比,它更加侧重于将地理信息视作为一门科学,而不仅仅是一个技术实现,主要研究在应用计算机技术对地理信息进行处理、存储、提取以及管理和分析过程中提出的一系列基本问题。
与旅游管理的管理系:GIS技术可以用于旅游管理中。
GIS技术的应用可大可小,可以是地震局的地震预测、可以是大银行的网点选址、可以是创业公司的用户分布也可以是你口袋里的旅游攻略。
扩展资料
数据是GIS的基础,也就是我们上面所说的地理信息,没有干净、完整、准确的数据,所有的分析都是空谈。在一份GIS的项目里面,往往最耗时的部分就是数据的收集和清理。
数据的收集往往不是个人可以做到的,大多数GISer使用的都是所谓“二手数据”,即已经存在的、由别的个人和组织已经收集的数据。数据往往又有免费数据和收费的数据,免费数据(在美国)通常是由 *** 或者非营利组织收集的,而收费数据则通常由商业公司收集的。
GIS中使用的数据通常分为两大部分,一部分是地图部分,即显示出来的区域,比如普查数据会有按照普查区划分好的地图呈现,另一部分是数据部分,也叫做Attribute Table。这个表格更像我们所想象的“数据”该有的样子,打开之后像是excel的形式。
参考资料来源:百度百科-GIS
关于gis地图svg和gis地图开发工具的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。