ArcGIS API for JavaScript 学习笔记(一)
终于开始了 噩梦一般的ArcGIS 我特别不习惯这种结构化的程序写法 写起来特别吃力 特别是把几个功能整合到同一个页面去的时候。
写程序的时候,一般我喜欢先写个Demo然后再把Demo上面的功能加到页面里面去 结果 加进去之后老是有问题 早了半天 问题还没找到 新的问题又出现了 好了不吐槽了 慢慢来
有关于ArcGIS的介绍 我就不再赘述了 网上有很多。
如何初始化地图
前端:
html,body {
padding-top: 25px;
margin:;
height: 100%;
}
#map {
height: 100%;
width: 100%;
margin:;
padding:;
position: relative;
}
这很重要 如果不定义html和body的高度 你的地图只有400的行号 或者你定义了map的高度 只能是map的高度不能自适应屏幕
脚本:
var map, pieChart, buffGeom;
require(["esri/map",
"esri/basemaps",
"dojo/domReady!"],
function (Map, esriBasemaps, dom) {
esriBasemaps.tdtvec = {
baseMapLayers: [{ url: "http://..." },
{ url: "http://..." }],
thumbnailUrl: "../Content/image/vectormap.png",
title: "基础地形"
}; esriBasemaps.tdtimg = {
baseMapLayers: [{ url: "http://..." },
{ url: "http://..." }],
thumbnailUrl: "../Content/image/imagemap.png",
title: "影像地图"
}; map = new Map("map", {
basemap: "tdtvec",
center: [120.756, 30.766],
zoom: 13
});
});
这里我自定义了需要叠加的底图(天地图)
如何添加一些小工具
前端:
就是将那些工具定位在地图上 这里就不写出来了 注意的一点是 map的样式上面 需要加上position: relative; 这样 这些工具会随着地图变动 位置跟着移动
脚本:
var map, msr;
require(["esri/map",
"esri/basemaps",
"esri/units", "esri/dijit/BasemapToggle",
"esri/dijit/HomeButton",
"esri/dijit/Scalebar",
"esri/dijit/Measurement", "dojo/dom",
"dojo/domReady!"],
function (Map, esriBasemaps, Units,BasemapToggle, HomeButton, Scalebar, Measurement, dom) {
esriBasemaps.tdtvec = {
baseMapLayers: [{ url: "http://..." },
{ url: "http://..." }],
thumbnailUrl: "../Content/image/vectormap.png",
title: "基础地形"
}; esriBasemaps.tdtimg = {
baseMapLayers: [{ url: "http://..." },
{ url: "http://..." }],
thumbnailUrl: "../Content/image/imagemap.png",
title: "影像地图"
}; map = new Map("map", {
basemap: "tdtvec",
center: [120.756, 30.766],
logo: false,
zoom: 13
}); //底图切换
var toggle = new BasemapToggle({
map: window.map,
basemap: "tdtimg"
}, "BasemapToggle");
toggle.startup(); //比例尺
var scalebar = new Scalebar({
map: window.map,
scalebarUnit: "metric"
}); //HOME按钮
var home = new HomeButton({
map: window.map
}, "HomeButton");
home.startup(); //测量工具
if (!msr) {
msr = new Measurement({
map: window.map,
defaultAreaUnit: Units.SQUARE_KILOMETERS,
defaultLengthUnit: Units.KILOMETERS
}, dom.byId("measurementDiv"));
msr.startup(); msr.on("measure-end", function (evt) {
this.setTool(evt.toolName, false);
});
}
});
下面是实际样式:

转载请注明地址:http://www.cnblogs.com/CoffeeEddy/p/5643949.html
ArcGIS API for JavaScript 学习笔记(一)的更多相关文章
- Arcgis api for javascript学习笔记(4.5版本) - 获取FeatureLayer中的graphics集合
在Arcgis api for javascript 3.x 版本中,我们可以直接通过某个FeatureLayer对象中的graphics属性获取要素集合. graphics属性 但是在4.x版本中, ...
- Arcgis api for javascript学习笔记(4.5版本) - 本地部署及代理配置
在开发过程中,由于api的文件比较多,没必要每个项目都将api加入到解决方案中.况且在VS中如果将api加入解决方案,在编写css或js代码时,由于智能提示需要扫描脚本等文件,会导致VS很卡.所以个人 ...
- Arcgis api for javascript学习笔记(3.2X版本)-初步尝试
Arcgis api for javascript(3.22版本)官方地址 :https://developers.arcgis.com/javascript/3/ 1. 根据官方示例实现一个简单地图 ...
- Arcgis api for javascript学习笔记 - 不改变默认端口(6080)情况下,外网访问Arcgis Server 发布的接口
Arcgis Server发布的地图服务地址默认端口号是6080,假设本机上只对80端口做了外网映射,在IIS中部署了一个网站绑定了80端口,那么网站中某个页面通过arcgis api for js ...
- Arcgis api for javascript学习笔记(4.6版本) - 二维MapView中的FeatureLayer显示标注
4.6版本api的FeatureLayer中有提供 labelsVisible 和 labelingInfo 两个属性,设置这两个属性可以实现显示将属性中某个字段作为标注.但是这两个属性只针对三维Sc ...
- Arcgis api for javascript学习笔记-控制地图缩放比例尺范围(3.2X版本与4.6版本)
Ⅰ. 在3.X版本中,设置Map对象的 "maxScale" 和 "minScale" 属性 <!DOCTYPE html> <html> ...
- Arcgis api for javascript学习笔记(4.5版本) - 点击多边形(Polygon)并高亮显示
在现在的 arcgis_js_v45_api 版本中并没有直接提供点击Polygon对象高亮显示.需要实现如下几个步骤: 1.点击地图时,获取Polygon的Graphic对象: 2.对获取到的Gra ...
- Arcgis api for javascript学习笔记(4.5版本)-三维地图实现弹窗功能
1. 对于Graphic对象,在初始化Graphic对象时设置popupTemplate属性,即可实现点击Graphic时显示弹窗. <!DOCTYPE html> <html> ...
- Arcgis api for javascript学习笔记(4.5版本)-三维地图的飞行效果
其实就只是用到了 view.goTo() 函数,再利用 window.setInterval() 函数(定时器)定时执行goTo().代码如下: <!DOCTYPE html> < ...
- Arcgis api for javascript学习笔记(4.5版本)-三维地图并叠加天地图标注
1.三维地图实现 在官网的demo中就有三维地图的实现,如下图所示 <!DOCTYPE html> <html> <head> <meta charset=& ...
随机推荐
- Hibernate中SQLite方言
package com.lain.util; /** * 2013-7-25 * chongzhen_zhao * SQLite方言 */ import java.sql.Types; import ...
- 转--object-C 与lua使用wax交互
[51CTO独家译文]2011年6月的编程语言排行榜Lua语言一军突起,一举进入前十名.这与一年前苹果决定在iOS系统上使用Lua语言密不可分.但是,你了解如何用Lua语言在iOS上开发应用吗?51C ...
- StringBuilder 用法和div获取
StringBuilder strHtml = new StringBuilder(); strHtml.Append("<tr>"); strHtml.Append( ...
- 在Activiti官方源码上提交的两个bugfix
前段时间在Activiti官方源码上提交了两个bugfix,截图为证. 第1个是BPMN model输出的bug:
- 【转】Open Live Writer 插件更新
一.更新内容 cnblog 页签中增加 Lua 和 Matlab 语法高亮:(SyntaxHighlight 页签中尚未添加) 增加折叠区域插件,见效果展示: 增加 bat 执行文件,直接拷贝插件所需 ...
- VS2012无法创建项目:未找到与约束……匹配的导出
故障情况:7月10号后用VS2012创建项目时,弹出如下对话框,无法创建新项目: 而后经网络搜索确定是7月10号更新了系统补丁后造成的 解决方案: 1.卸载这两个补丁后重启电脑: 2.到http:// ...
- (一)问候Spring4
第一节:Spring 简介 Spring 作者:Rod Johnson: 官方网站:http://spring.io/ 最新开发包及文档下载地址:http://repo.springsource.or ...
- python输出1到100之和的几种方法
1. 使用内建函数range print sum(range(1,101)) 2. 使用函数reduce print reduce(lambda a,b:a+b,range(1,101)) 3. 使用 ...
- 12天学好C语言——记录我的C语言学习之路(Day 8)
12天学好C语言--记录我的C语言学习之路 Day 8: 从今天开始,我们获得了C语言中很有力的一个工具,那就是函数.函数的魅力不仅于此,一个程序到最后都是由众多函数组成的,我们一定要用好函数,用熟练 ...
- <a>多颜色标签点击之后保持原色的一次实践, Ext Panel下解决及通用方案思路
代码为片段, 需要自行设置全部环境方可全部运行. 案例背景 使用Ext开发了一个表格,需要根据一列值来动态设置颜色. 效果如下: 说明: 不同行显示不同的内容, 作为标题行, 可以点击链接到其他地方. ...