当前位置: 首页 > news >正文

做软装什么网站可以企业自建电商平台有哪些

做软装什么网站可以,企业自建电商平台有哪些,ui培训机构全国排名,网站开发销售提成作者#xff1a;dongyx 前言 在GIS领域#xff0c;地图瓦片技术作为GIS领域的关键技术#xff0c;是提高地图服务性能的关键手段之一。通过预先生成地图的瓦片数据#xff0c;可以显著提升用户访问地图时的响应速度和体验。SuperMap iObjects for Java作为一款强大的GIS开… 作者dongyx 前言 在GIS领域地图瓦片技术作为GIS领域的关键技术是提高地图服务性能的关键手段之一。通过预先生成地图的瓦片数据可以显著提升用户访问地图时的响应速度和体验。SuperMap iObjects for Java作为一款强大的GIS开发组件为开发人员提供了丰富的地图制图、空间分析和数据处理功能使得地图瓦片的生成变得更加便捷高效。本文将详细介绍如何使用SuperMap iObjects for Java从零开始生成地图瓦片。 一、地图瓦片的概念与优势 地图瓦片是指包含了一系列比例尺、一定地图范围内的地图瓦片文件。地图瓦片按照金字塔组织结构为每张瓦片进行唯一的级别、行列号标记。在平移、缩放地图时浏览器根据金字塔规则计算出所需的瓦片从瓦片服务器获取并拼接。 SuperMap提供的瓦片类型包括栅格瓦片和矢量瓦片。 栅格瓦片 栅格瓦片是一种比较传统的模式其本质上是将空间数据栅格数据和矢量数据分别渲染为不同缩放级别的地图图片然后将各个级别的图片按照一定规则切分一定的 “规则”存储到硬盘或数据库中构成一幅完整的地图。栅格瓦片通常以PNG、JPEG、Webp等图像格式存储。 特点 兼容性强几乎所有的设备和浏览器都能够显示图片因此兼容性很好。渲染效率高瓦片是预先渲染好的客户端不需要进行复杂的渲染计算加载速度快。样式固定样式在瓦片生成时已经确定后续无法更改。数据量较大相比矢量瓦片栅格瓦片因为是图片所以数据量通常更大尤其在高分辨率或大范围地图的情况下。 矢量瓦片 以图片为介质的栅格瓦片打开了互联网地图的大门互联网地图得以迅速普及。但是随着地图的移动化和应用的逐渐深入栅格瓦片体积大、生成效率低等缺点愈加明显已经无法满足应用需求矢量瓦片应运而生。矢量瓦片是将地图中的矢量图层以瓦片的形式进行切分和存储。 矢量瓦片在存储时其相对于栅格瓦片体积小生成效率高适用于地图中时效性要求较高的地物要素的表达如POI信息、路线信息等。如在天地图中POI图层采用矢量瓦片技术满足数据的实时更新需求。同时可以实现地图离线大幅提升了移动端地图的浏览性能提高了工作的可能性和有效性。 另外矢量瓦片支持样式修改不再需要为不同的样式而反复进行制图、渲染、切图、更新服务等过程。如在国土等行业涉及海量数据的应用中当地图样式发生变化时矢量瓦片可以直接更改样式省时省力。 特点 样式灵活矢量瓦片的样式在客户端动态应用可以根据需求调整颜色、线宽、透明度等甚至可以实现动态地图。数据量小MVT格式高效压缩了矢量数据使得瓦片体积小易于快速传输。可交互性强客户端可以解析矢量瓦片中的几何和属性信息实现点击、高亮、提示框等交互功能。客户端渲染矢量瓦片需要客户端进行渲染这对客户端的性能有一定要求但随着现代浏览器和硬件的发展这通常不是问题。 选择哪种瓦片格式主要取决于应用场景和需求。如果需要高度可定制的地图样式和丰富的用户交互则MVT矢量瓦片是更好的选择。如果优先考虑兼容性和简化客户端负担或者没有动态样式和交互的需求则栅格瓦片可能更加合适。 二、SuperMap iObjects Java从零开始生成地图栅格瓦片 经常有客户会有后台自动化切图的需求该示例主要是通过一张tif影像从创建工作空间、创建数据源、创建镶嵌数据集然后进行切图处理后续也可以通过Java代码通过POST请求发iServer地图服务。 2.1 数据准备 2.1.1 创建工作空间 //实例化一个WorkspaceWorkspace workspace new Workspace();//实例化一个工作空间连接参数WorkspaceConnectionInfo workspaceConnectionInfo new WorkspaceConnectionInfo();//设置工作空间类型workspaceConnectionInfo.setType(WorkspaceType.SMWU);String workspaceName tSystem.currentTimeMillis();//设置工作空间名称workspaceConnectionInfo.setName(workspaceName);String workspacePath workspaceDir.concat(File.separator).concat(workspaceName);//设置工作空间路径workspaceConnectionInfo.setServer(workspacePath);boolean flag workspace.saveAs(workspaceConnectionInfo);if (flag) {workspace.save();System.out.println(新建工作空间成功! workspace.getConnectionInfo().getServer());} else {System.out.println(新建工作空间失败! workspace.getConnectionInfo().getServer());}2.1.2 创建数据源 WorkspaceConnectionInfo wInfo workspace.getConnectionInfo();String workspaceDir new File(wInfo.getServer()).getParent();String workspaceName wInfo.getName();String udbPath workspaceDir.concat(File.separator).concat(workspaceName);//实例化数据源连接参数DatasourceConnectionInfo dInfo new DatasourceConnectionInfo();//设置数据源类型dInfo.setEngineType(EngineType.UDBX);//设置数据源文件路径dInfo.setServer(udbPath);String udbName uSystem.currentTimeMillis();//设置数据源别名别名在一个工作空间中是唯一的dInfo.setAlias(udbName);Datasource datasource workspace.getDatasources().create(dInfo);if (datasource.isOpened()) {System.out.println(datasource.isReadOnly() datasource.isReadOnly());} else {System.out.println(新建Udbx数据源失败!);}2.1.3 创建镶嵌数据集 Datasets datasets datasource.getDatasets();PrjCoordSys prjCoordSys new PrjCoordSys();prjCoordSys.fromEPSGCode(4326);//获取一个可用的数据集名称String datasetName datasets.getAvailableDatasetName(mosaic, DatasetType.MOSAIC);//创建镶嵌数据集DatasetMosaic datasetMosaic datasets.createDatasetMosaic(datasetName, prjCoordSys);String files D:\\陕西省土壤数据.tif;//添加影像文件datasetMosaic.addFiles(new String[]{files}, null);//构建概视图datasetMosaic.buildOverview(C:\\Users\\admin\\Desktop\\supermap, 512, 512, 3, false, 0.0);//构建统计信息boolean flag datasetMosaic.buildStatistics();System.out.println(构建镶嵌数据集统计信息 flag);2.1.4 构建地图 //构建地图对象com.supermap.mapping.Map map new com.supermap.mapping.Map(workspace);Layers layers map.getLayers();//将镶嵌数据集添加到地图中LayerMosaicGroup layerMosaicGroup layers.addMosaicGroup(datasetMosaic, true);//设置边界图层不可见。 //设置轮廓图层不可见。//标注图层不可见for (int i 0; i layerMosaicGroup.getCount(); i) {if (layerMosaicGroup.get(i).getSubLayerType() ! LayerType.SUBLAYER_MOSAIC) {layerMosaicGroup.get(i).setVisible(false);}}//设置图层风格LayerSettingImage layerSettingImage layerMosaicGroup.getMosaicLayer().getLayerSettingImage();PixelFormat pixelFormat datasetMosaic.getPixelFormat();if (PixelFormat.BIT16 pixelFormat || PixelFormat.BIT32 pixelFormat || PixelFormat.BIT64 pixelFormat ||PixelFormat.DOUBLE pixelFormat || PixelFormat.SINGLE pixelFormat ||PixelFormat.UBIT16 pixelFormat || PixelFormat.UBIT32 pixelFormat ||PixelFormat.UNKONOWN pixelFormat) {ImageStretchOption imageStretchOption new ImageStretchOption();//设置影像拉伸方式imageStretchOption.setStretchType(ImageStretchType.STANDARDDEVIATION);layerSettingImage.setImageStretchOption(imageStretchOption);}map.viewEntire();Maps maps workspace.getMaps();maps.add(mosaic, map.toXML());//保存地图maps.setMapXML(mosaic, map.toXML());workspace.save();2.2 创建地图瓦片 //构建Map对象com.supermap.mapping.Map map new com.supermap.mapping.Map(workspace);String mapXML workspace.getMaps().getMapXML(0);map.fromXML(mapXML);//设置缓存名称String cacheName CTH System.currentTimeMillis();MapCacheBuilder mapCacheBuilder new MapCacheBuilder();// 栅格瓦片参数设置mapCacheBuilder.setMap(map);mapCacheBuilder.setBounds(map.getBounds());mapCacheBuilder.setIndexBounds(mapCacheBuilder.getGlobalIndexBounds());mapCacheBuilder.setStorageType(StorageType.Compact);mapCacheBuilder.setOutputFolder(F:\\重点客户数据\\); mapCacheBuilder.setCacheName(cacheName);// 进度条输出公共mapCacheBuilder.addSteppedListener(new SteppedListener() {Overridepublic void stepped(SteppedEvent steppedEvent) {System.out.println(steppedEvent.getTitle() steppedEvent.getMessage() steppedEvent.getPercent() %);}});boolean build false;mapCacheBuilder.computeOutputScales();mapCacheBuilder.setIgnoreInvalidDrawing(true);mapCacheBuilder.setTileFormat(TileFormat.JPG_PNG);mapCacheBuilder.setTilingMode(MapTilingMode.GLOBAL);HashMapDouble, String scalesMaps mapCacheBuilder.getGlobalLevelScales();Integer minScales 6;Integer maxScales 8;// 获取比例尺double[] outputScales getOutputScales(scalesMaps, minScales, maxScales);HashMapDouble, String doubleStringHashMap2 new HashMap();doubleStringHashMap2.put(outputScales[0],6);doubleStringHashMap2.put(outputScales[1],7);doubleStringHashMap2.put(outputScales[2],8);mapCacheBuilder.setOutputScales(outputScales);mapCacheBuilder.setOutputScaleCaptions(doubleStringHashMap2);mapCacheBuilder.resumable(false);// 开始切图栅格瓦片build mapCacheBuilder.build();// 公共if (build) {System.out.println(切图成功cacheName);System.out.println(System.currentTimeMillis());} else {System.out.println(切图失败);}// 销毁相关资源mapCacheBuilder.dispose();private static double[] getOutputScales(HashMapDouble, String scalesMaps, Integer minScales, Integer maxScales) {int arraylength maxScales - minScales 1;double[] outputScales new double[arraylength];String[] values new String[arraylength];for (int i 0; i values.length; i) {values[i] String.valueOf(minScales i);}for (int i 0; i outputScales.length; i) {outputScales[i] getMapKey(scalesMaps, values[i]);}return outputScales;}private static Double getMapKey(HashMapDouble, String maps, String value) {Double key 0.0;for (Map.EntryDouble, String entry : maps.entrySet()) {if (entry.getValue().equals(value)) {key entry.getKey();}}return key;}结语 以上就是生成地图瓦片的相关操作步骤后续将会继续分享如何使用SuperMap iObjects Java进行多任务切图相比单任务切图多任务切图大大提升了切图效率敬请期待
http://www.yutouwan.com/news/241101/

相关文章:

  • 贵阳做网站做得好的做网站的人跑了网站可以恢复吗
  • 长沙网站建设外包海口室内设计公司排名
  • 做响应式网站多少钱做平面设计兼职的网站
  • 网站怎么做舆情监测无需下载即可观看网页
  • 高端建设响应式网站wap手机银行
  • 兰州网站建设推荐q479185700上墙免费的分销app
  • 家具品牌网站怎么做dedecms 网站安装教程
  • 深圳精品网站制作开发流程图
  • 深圳 购物商城网站建设阿里云网站备案拍照点
  • 企业网站带后台免费服务器申请
  • 网站提高内容的丰富度创意网站域名的单词
  • 国家合同模板网站wordpress手机网站模版
  • 物流商 网站建设方案苏州pc网站开发
  • 信誉好的大良网站建设哈尔滨设计公司排名
  • 网站开发的基本流程文库光谷做网站推广电话
  • 网站有多少个wordpress双栏主题
  • 北京网站建设方案常州微信网站建设咨询
  • 免费海报素材网站大全珠海网站快速排名提升
  • 顺德顺的网站建设wamp加wordpress
  • 可以做旅行计划的网站网站域名申请费用
  • 给帅哥做奴视频网站地址多用户网站建设
  • 写小说赚钱的网站阿里云虚拟主机网站建设
  • 简述商务网站建设步骤松江网站建设公司怎么样
  • 企业网站建设需注意点wordpress 5正式版
  • 衡水网站建设哪家好商城网站多少钱做
  • 上海制作网站公司哪家好泉州做网站设计
  • 腾讯云服务器网站域名备案郑州小程序开发价格
  • 手机移动开发网站建设百度指数总结
  • 室内设计网站平面案例学校网站建设费用
  • 网站建设技术中心一是加强了网站建设