今天給各位分享gis地圖svg的知識,其中也會對gis地圖開發(fā)工具進行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關(guān)注本站,現(xiàn)在開始吧!
目錄一覽:
- 1、mapgis數(shù)據(jù)如何轉(zhuǎn)化為SVG格式
- 2、svg格式怎么轉(zhuǎn)成.shp格式,能在ArcGIS中打開?
- 3、gis多個圖層地圖用htmlcanvas截圖獲取不到
- 4、GIS地圖: 是什么
mapgis數(shù)據(jù)如何轉(zhuǎn)化為SVG格式
直接轉(zhuǎn)肯定是轉(zhuǎn)不了的,mapgis沒有提供該格式接口,不過你可以先轉(zhuǎn)dxf,dxf是cad的標準交換格式,基本上所有矢量軟件都提供跟dxf的接口,而且網(wǎng)上有很多cad(包括dxf格式)轉(zhuǎn)svg的小工具。祝你成功!
svg格式怎么轉(zhuǎn)成.shp格式,能在ArcGIS中打開?
svg格式轉(zhuǎn)成.shp格式,能在ArcGIS中打開步驟:
*** 1
info/convert/image/svg2raster.03/en/SVGView.adobe://download.htm
添加微信好友, 獲取更多信息
復(fù)制微信號
在上面網(wǎng)頁中導(dǎo)入SVG格式的圖片://download.exe" target="_blank"http.htm" target="_blank"http.com/pub/adobe/magic/svgviewer/win/3.03/en/SVGView.info/c
*** 2
是一個開放標準,不過有些瀏覽器(比如IE)可能要安裝插件,還能導(dǎo)出保存為svg或其他格式的文件,如使用火狐瀏覽器就可以直接查看svg文件,可以通過瀏覽器打開. 使用“Adobe Illustrator”可以查看而且能夠再次編輯svg文件。
gis多個圖層地圖用htmlcanvas截圖獲取不到
找到兩個前端就能解決的 *** ,最后因為各種原因采用了 *** 二。
???????? *** 一:
????????????????找到地圖上的全部點,然后在canvas上面重繪一次。
html2canvas(this.$refs.target, {
...
useCORS: true, // 如果截圖的內(nèi)容里有圖片,可能會有跨域的情況,加上這個參數(shù),解決文件跨域問題
}).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
);
}
});
...
//下面是截圖代碼
})
登錄后復(fù)制
因為本身目標dom的position定位問題,最后打的點可能會出現(xiàn)偏移。
所以還要給html2canvas加幾個屬性: x , y , scrollX , scrollY。保險起見,再加上兩個參數(shù)?width 和 height 。
本人是后面chrome測著沒問題,但是給小伙伴測試的時候,他用的360瀏覽器還有個xx瀏覽器有點問題。干脆參數(shù)全加上。
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, // 如果截圖的內(nèi)容里有圖片,可能會有跨域的情況,加上這個參數(shù),解決文件跨域問題
}).then((canvas) = {
...
})
}
登錄后復(fù)制
要是項目的地圖是不可移動的,基本到這里就可以了。
但是地圖只要一挪動。。一個新的bug出現(xiàn)了。。。。。整個地圖畫線打點層的偏移量和截圖之前不一樣。。。。 截圖后,畫線層偏的比原地圖還要遠,打點卻還在原位沒動過。。
這個問題需要修正svg的偏移,然后這個標注點繪制的時候也要加上一個偏移量。
地圖偏移的bug后面再講。
????????? *** 二:(最后采用)
????????????????把svg中所有的image圖片的href路徑轉(zhuǎn)換為base64編碼格式。簡單方便,不用考慮位置什么的問題,就是有些瀏覽器里面圖片加載慢。。。setTimeout有時候要設(shè)置大一點。。
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 內(nèi)部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屬性
};
});
//圖片地址轉(zhuǎn)為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, // 如果截圖的內(nèi)容里有圖片,可能會有跨域的情況,加上這個參數(shù),解決文件跨域問題
}).then((canvas) = {
...
})
}, 200);
}
登錄后復(fù)制
GIS地圖: 是什么
GIS,全稱:Geographic Information Science,地理信息科學的縮寫。它是在計算機硬、軟件系統(tǒng)支持下,對整個或部分地球表層(包括大氣層)空間中的有關(guān)地理分布數(shù)據(jù)進行采集、儲存、管理、運算、分析、顯示和描述的技術(shù)系統(tǒng)。
1992年Goodchild提出的,與地理信息系統(tǒng)相比,它更加側(cè)重于將地理信息視作為一門科學,而不僅僅是一個技術(shù)實現(xiàn),主要研究在應(yīng)用計算機技術(shù)對地理信息進行處理、存儲、提取以及管理和分析過程中提出的一系列基本問題。
與旅游管理的管理系:GIS技術(shù)可以用于旅游管理中。
GIS技術(shù)的應(yīng)用可大可小,可以是地震局的地震預(yù)測、可以是大銀行的網(wǎng)點選址、可以是創(chuàng)業(yè)公司的用戶分布也可以是你口袋里的旅游攻略。
擴展資料
數(shù)據(jù)是GIS的基礎(chǔ),也就是我們上面所說的地理信息,沒有干凈、完整、準確的數(shù)據(jù),所有的分析都是空談。在一份GIS的項目里面,往往最耗時的部分就是數(shù)據(jù)的收集和清理。
數(shù)據(jù)的收集往往不是個人可以做到的,大多數(shù)GISer使用的都是所謂“二手數(shù)據(jù)”,即已經(jīng)存在的、由別的個人和組織已經(jīng)收集的數(shù)據(jù)。數(shù)據(jù)往往又有免費數(shù)據(jù)和收費的數(shù)據(jù),免費數(shù)據(jù)(在美國)通常是由 *** 或者非營利組織收集的,而收費數(shù)據(jù)則通常由商業(yè)公司收集的。
GIS中使用的數(shù)據(jù)通常分為兩大部分,一部分是地圖部分,即顯示出來的區(qū)域,比如普查數(shù)據(jù)會有按照普查區(qū)劃分好的地圖呈現(xiàn),另一部分是數(shù)據(jù)部分,也叫做Attribute Table。這個表格更像我們所想象的“數(shù)據(jù)”該有的樣子,打開之后像是excel的形式。
參考資料來源:百度百科-GIS
關(guān)于gis地圖svg和gis地圖開發(fā)工具的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。