最近加载wms地图后,总是报这个错误,因为错误,导致后续的代码无法加载,导致无法功能使用. 原因是,由于方法公用,有的新功能在使用时,引用依赖包时,未引用完整,导致加载此处加载wms图层的时候, 报此错误.如果此处直接增加引用的语句,会提示多重引用错误.所以使用以下方法解决. 解决:使用hasOwnProperty方法判断esri.layers对象中是否包含WMSLayer属性,如果不存在则引用,否则,不应用.代码如下:…
微软必应地图在chrome浏览器加载错误:Uncaught TypeError: Microsoft.Maps.Location is not a constructor, 原因是没有等待地图API加载完成就加载地图导致,需要优化地图加载顺序…
今天在使用vuex的时候遇到这么个问题,虽然后来解决了,是首字母大写的原因,但我还是不知道为什么.这里先记录下来. 这是vuex/store.js import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex) const state = { count: } export default new Vuex.store({ state }) 控制台报错TypeError: __WEBPACK_IMPORTED_MODULE_1_vuex__…
代码如下: Ext.onReady(function(){ //定义列 var cm = new Ext.grid.ColumnModel([ {header: '编号', dataIndex: 'id'}, {header: '名称', dataIndex: 'name'}, {header: '描述', dataIndex: 'des'} ]); //数据定义 var data = [ ['1001','name1','description1'], ['1002','name1','des…
这是web3.js开发者在创建合约对象时很容易发生的错误,其实就是不同版本web3.js带来的API变化问题. 请检查你的web3.js版本: 如果version<1.0.0,使用: web3.eth.contract(studentFactoryArtifact,address);// 注意区分contract大小写 1 如果version>1.0.0,使用: new web3.eth.Contract(studentFactoryArtifact,address); // 注意区分Cont…
概述:本节讲述Arcgis for Js加载ArcgisServer和GeoServer发布的wms服务. 1.定义resourceInfo var resourceInfo = { extent: new Extent(-126.40869140625,31.025390625,-109.66552734375,41.5283203125,{wkid: 4326}), layerInfos: [], version : '1.1.1' }; 2.加载ArcgisServer的wms var a…
Description This sample shows how to work with an OGC Web Map Service (WMS). When WMSLayers are added to the map only the specified layers are displayed. The code below creates a new WMSLayer then uses the visibleLayers constructor option to specify…
前言 在工作中,需要在ArcGIS API for JavaScript中加载超图服务,因为超图的rest服务只可以用于Leaflet .openlayers3 (with MVT) .MapboxGL .Tianditu.com,在使用ArcGIS API是无法加载超图的rest服务的(我认知的).    在超图的superMap iServer中可以发布符合OGC规则的WMS服务,这时,我们可以通ArcGIS API加载WMS服务的形式加载超图服务. 加载WMS服务要点 visibleLay…
1.    出现 set Assigning an instance of 'esri.***' which is not a subclass of 'esri.***‘的错误原因 是 因为没有找见文件 2.   [esri.core.Accessor] Accessor#set Assigning an instance of 'esri.layers.GraphicsLayer' which is not a subclass of 'esri.Graphic' 原因 :p= new Gr…
图层包含的要素可以是矢量形式的也可以是栅格形式的. 这里介绍其中一种:添加TileLayer.(加载Image类型的图层) 引用:"esri/layers/TileLayer" 举例:1.获取图层信息 var houseLayer = new TileLayer({ url:"https://tiles.arcgis.com/tiles/nGt4QxSblgDfeJn9/arcgis/rest/services/New_York_Housing_Density/MapServ…
1.开篇 守望屁股实在太好玩了,所以最近有点懒,这次就先写个简单的来凑一下数.这次我的模仿目标是天地图的地图联动. 天地的地图联动不仅地图有联动,而且鼠标也有联动,我就照着这个目标进行山寨. 2.准备 地图联动其实就是当一张的extent发生了变化,另一张图的extent也要同步变化,这样就可以两张图的范围同步了.同理,这样就可以扩展到N张图进行联动.所以这次的目标就是实现添加任意的地图都要可以联动.首先依然是先看一下官方文档.找到有用的方法或者事件. 整体的难点在于如何判断主地图(有鼠标动作的…
对于中国开发者在创建GIS应用的时候,往往比较头疼的是底图资源的缺乏.其实国家测绘地信局就提供一个很好的免费资源:天地图.使用ArcGIS API的开发人员可以直接利用该资源作为地图应用的底图. ArcGIS JavaScript API最近新推出了3.18版本.所以下面示例代码将基于该版本. <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf…
1. 开篇 模仿是最好的学习,这次我们继续山寨百度,通过自定义Infowindow来实现百度风格的BubblePopup 2.准备 2.1 Copy模板 先打开百度地图,按下f12吧BubblePopup的HTML代码和CSS代码拷贝下来,这里我无耻的把类名改了,大家不要在意细节. HTML模板 <div class="dextra-bubble-pop-center" style="z-index: 3; position: relative; height: 50p…
一.前言 吐槽一下,百度在国内除了百度地图是良心产品外,其他的真的不敢恭维.在上一篇笔记里,我已经实现了自定义的地图测量模块.在百度地图里面(其他地图)都有一个周边搜索的功能,拖拽画一个圆,然后以圆半径进行搜索(也就是缓冲区╮(╯_╰)╭). 这次的目标,就是要山寨这个拖拽画圆的功能,我先放一个效果图. 二.开始山寨 我们先想一想要实现这个功能需要哪些步骤. 拖拽 画圆 通知拖拽结束 2.1 实现拖拽 关于拖拽,有graphicslayer的拖拽事件和map的拖拽事件,如何选择呢?先来看一看官方…
一.开篇 在博客注册了三年,今天才决定写第一篇博客,警告自己不要懒!!! 二.关于ArcGIS JS 版本选择 在写这篇博客时ArcGIS JS 4.0正式版已经发布.它和3.x版本的不同是,Map不在是一个控件,而真的只是一张“图”,Map(4.0版本)需要在一个View里面来展示,在MapView里面就是一张平面图,在SceneView里面就一张三维地图.同一张地图在不同的View里面就可以呈现出不同的效果.但是4.0版本才是一个最初的版本,还有很多3.x有的功能没有被加入到其中.所以我打算…
原文:Arcgis for JS之Cluster聚类分析的实现(基于区域范围的) 咱们书接上文,在上文,实现了基于距离的空间聚类的算法实现,在本文,将继续介绍空间聚类之基于区域范围的实现方式,好了,闲言少叙,先看看具体的效果: 聚类效果 点击显示信息 显示单个聚类点 下面说说具体的实现思路. 1.数据组织 在进行数据组织的时候,因为是要按照区域范围的,所以必须得包含区域范围的信息,在本示例中,我用的数据依然是全国2000多个区县点的数据,并添加了省市代码,数据如下: 2.聚类思路 根据数据中“p…
原文:Arcgis for JS之Cluster聚类分析的实现 在做项目的时候,碰见了这样一个问题:给地图上标注点对象,数据是从数据库来 的,包含XY坐标信息的,通过graphic和graphiclayer 的方式添加到地图上,其中有一个对象的数量很多,上万了吧,通过上述的方式无法在地图上进行展示,就想到了聚类,当时由于技术和时间的关系,没有实现,最 近,稍微有点先下时间,就又想起这事,继续研究,终于,皇天不负有心人,出来了,出来的第一时间写出来,以便大家使用. 首先,看看实现后的效果: 初始化…
Arcgis的Javascript api开发很活跃,不知不觉都发布了3.6的版本了.该版本基于dojo 1.8.3开发的. 从dojo 1.8开始,AMD机制用得越来越多了,而且require([""],...)成为了推荐的写法,原来的dojo.require已不推荐使用了. 但是当我用 define(["esri/layers/TiledServiceLayer",....)这种语法来修改之前网上放出的写法时,发现不行,于是有了下面折中的写法.下面贴代码 第一个…
感谢原作者分享:https://github.com/shevchenhe/ChartLayer,在使用的过程中,需要自己进行调试修改,主要还是_draw函数,不同的ArcGIS JS API函数有差异,会出错. 首先是是扩展GraphicLayer dojo.provide("sggchart.SggChartLayer"); dojo.require("dojox.gfx"); dojo.require("esri.geometry"); d…
综述:本节讲述的是用Arcgis for js载入天地图的切片资源. 天地图的切片地图能够通过esri.layers.TiledMapServiceLayer来载入.在此将之进行了一定的封装,例如以下: 1.切片线划图--TDTLayer.js define(["dojo/_base/declare", "esri/layers/tiled"], function (declare) { return declare(esri.layers.TiledMapServ…
做地理信息系统(GIS)项目,除了实现功能用户体验度要好之外,最重要的是地图渲染效果更要好.很多时候苦于数据的完整性和对于配图的审美观,程序猿们都很难配出好看的地图效果.基于上述一般直接调用google的地图服务,包括矢量地图,地形地图和影像地图.这样就不用花大力气关注于数据的问题,只需要把地图的操作功能实现就行.下面来说说如何基于arcgis js api 调用google的地图服务. 首先我们需要知道google地图服务的地址: http://mt.google.cn/vt/lyrs=s@1…
在前两节,讲到了两种不同方式的聚类,一种是基于距离的,一种是基于区域范围的,两种不同的聚类都是通过扩展esri/layers/GraphicsLayer方法来实现的.在本节,就具体的讲讲esri/layers/GraphicsLayer方法的扩展. 首先.在解说扩展之前,先看看API中esri/layers/GraphicsLayer的一些參数和方法等. 1.创建一个GraphicLayer 在ESRI官方的API中,创建GraphicLayer有两种方式: watermark/2/text/a…
require(["esri/layers/TiledMapServiceLayer"], function () {     dojo.declare("com.StrongIt.Map.Layers.LayerTianditu", esri.layers.TiledMapServiceLayer, {         _mapStyle: "",         constructor: function (mapStyle, startLe…
ILayer http://127.0.0.1:47873/help/1-4452/ms.help?method=page&id=ESRICARTO-7E8C676F-000BCF&product=VS&productversion=100&locale=en-US&topiclocale=EN-US&topicversion=0&SQM=2 ILayer 接口是被图层(Layer)对象实现的,图层对象是用来在地图中显示空间信息,注意, 图层不含有空…
使用GeoWebCache的主要目的是其独立安装版能够发布arcgis的切片.我们知道,使用openlayer是调用geoserver最方便的方法,那么在发布完arcgis的切片后,怎么用arcgis API来调用呢? 1.重写TiledMapServiceLayer的方式. 不断寻找,终于找到了一个arcgis官网的加载geoserver的wmts的例子,而geoserver和GeoWebCache是支持wmts的.所以这个方法是可行的.我将这个例子改了一下,最后调用成功. 例子如下: fun…
1. Ionic同原生ArcGIS JavaScript API结合 1.1. 安装esri-loader 在工程目录下命令行安装: npm install angular2-esri-loader esri-loader: 1.2. 构造地图Component 将附件中的map.rar这个Component解压到pages文件夹下 这是一个实现参考,定义了一个地图展示Component. ts代码: import { Component, OnInit, ViewChild, ElementR…
arcgis 自己的infowindow 太难看了,放在系统中与系统中的风格格格不入,在参考了网上的一些资料后,整理编写了适合自己系统的infowindow,与大家分享. 1.自定义展示效果 2.InfoWindow.js define([ "dojo/Evented", "dojo/parser", "dojo/on", "dojo/_base/declare", "dojo/dom-construct"…
1.地理坐标系与投影坐标系 地理坐标系也就是球面坐标系,是将本不是椭球体的地球进行椭球体化,从而形成球面坐标体系,国际标准的地理坐标系就是WGS-84坐标系: 只不过各个国家为了反映该国家所在区域地球的真实形状,采用不同的数学模型对地球进行椭球体化,所以就有个Beijing54.Xian80坐标系. 投影坐标系是为平面坐标,是将地理坐标根据一定的投影规则投影到平面,形成的平面直角坐标系,比如高斯-克吕格投影,墨卡托投影等. 2.WGS-84坐标系 WGS-84坐标是地理坐标系,也就是GPS坐标,…
前言 关于本篇功能实现用到的 api 涉及类看不懂的,请参照 esri 官网的 arcgis api 3.x for js:esri 官网 api,里面详细的介绍 arcgis api 3.x 各个类的介绍,还有就是在线例子:esri 官网在线例子,这个也是学习 arcgis api 3.x 的好素材. 内容概览 基于 arcgis api 3.x 实现加载在线地图 源代码 demo 下载 本篇主要讲述的是利用 arcgis api 加载互联网在线地图服务资源,简单封装一个底图切换控件 js,在…
接上篇博客,下载好arcgis格式的瓦片数据以后,需要用js客户端在前端加载出来.这里介绍两种方案: 1.使用超图iServer将瓦片发布成rest地图服务,或者arcgis地图服务,客户端直接加载 2.将瓦片部署到tomcat服务器下,使用js客户端解析加载 备注:arcgis-js客户端的本地部署见博客: 使用iServer发布成服务对接 1.在iServer管理界面,点击发布arcgis缓存 2.选择发布rest地图服务和arcgis地图服务 3.发布完成后的服务地址 http://loc…