终于开始了 噩梦一般的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 学习笔记(一)的更多相关文章

  1. Arcgis api for javascript学习笔记(4.5版本) - 获取FeatureLayer中的graphics集合

    在Arcgis api for javascript 3.x 版本中,我们可以直接通过某个FeatureLayer对象中的graphics属性获取要素集合. graphics属性 但是在4.x版本中, ...

  2. Arcgis api for javascript学习笔记(4.5版本) - 本地部署及代理配置

    在开发过程中,由于api的文件比较多,没必要每个项目都将api加入到解决方案中.况且在VS中如果将api加入解决方案,在编写css或js代码时,由于智能提示需要扫描脚本等文件,会导致VS很卡.所以个人 ...

  3. Arcgis api for javascript学习笔记(3.2X版本)-初步尝试

    Arcgis api for javascript(3.22版本)官方地址 :https://developers.arcgis.com/javascript/3/ 1. 根据官方示例实现一个简单地图 ...

  4. Arcgis api for javascript学习笔记 - 不改变默认端口(6080)情况下,外网访问Arcgis Server 发布的接口

    Arcgis Server发布的地图服务地址默认端口号是6080,假设本机上只对80端口做了外网映射,在IIS中部署了一个网站绑定了80端口,那么网站中某个页面通过arcgis api for js ...

  5. Arcgis api for javascript学习笔记(4.6版本) - 二维MapView中的FeatureLayer显示标注

    4.6版本api的FeatureLayer中有提供 labelsVisible 和 labelingInfo 两个属性,设置这两个属性可以实现显示将属性中某个字段作为标注.但是这两个属性只针对三维Sc ...

  6. Arcgis api for javascript学习笔记-控制地图缩放比例尺范围(3.2X版本与4.6版本)

    Ⅰ. 在3.X版本中,设置Map对象的 "maxScale" 和 "minScale" 属性 <!DOCTYPE html> <html> ...

  7. Arcgis api for javascript学习笔记(4.5版本) - 点击多边形(Polygon)并高亮显示

    在现在的 arcgis_js_v45_api 版本中并没有直接提供点击Polygon对象高亮显示.需要实现如下几个步骤: 1.点击地图时,获取Polygon的Graphic对象: 2.对获取到的Gra ...

  8. Arcgis api for javascript学习笔记(4.5版本)-三维地图实现弹窗功能

    1. 对于Graphic对象,在初始化Graphic对象时设置popupTemplate属性,即可实现点击Graphic时显示弹窗. <!DOCTYPE html> <html> ...

  9. Arcgis api for javascript学习笔记(4.5版本)-三维地图的飞行效果

    其实就只是用到了 view.goTo()  函数,再利用 window.setInterval()  函数(定时器)定时执行goTo().代码如下: <!DOCTYPE html> < ...

  10. Arcgis api for javascript学习笔记(4.5版本)-三维地图并叠加天地图标注

    1.三维地图实现 在官网的demo中就有三维地图的实现,如下图所示 <!DOCTYPE html> <html> <head> <meta charset=& ...

随机推荐

  1. 介绍一些实用的IOS手势识别库 (COCOS2D)

    http://www.supersuraccoon-cocos2d.com/zh/2012/11/14/introduction-to-some-great-ios-gesture-recogniti ...

  2. Lipo Error!! can't open input file

    参考文章:http://stackoverflow.com/questions/17348912/lipo-error-cant-open-input-file I got it to Work, i ...

  3. Asp.Net 之 获取GridView行的DataKeys

    1.后台任意一个位置获取GridView行的主键值 foreach (GridViewRow row in GridView1.Rows) { string order_Id=this.GridVie ...

  4. vb.net中常用键值

    可在代码中的任何地方用下列常数代替实际值: 常数 值 描述 vbKeyLButton 0x1 鼠标左键 vbKeyRButton 0x2 鼠标右键 vbKeyCancel 0x3 CANCEL 键 v ...

  5. 使用Jsoup帮助解析具有html标签的数据和解析网页

    下载Jsoup包后导入 /** * Created by YGW on 2016/4/17. * 显示公告的详细内容 */public class PressFragment extends Frag ...

  6. <item name="android:windowNoTitle">true</item> 不起作用。标题栏未被隐藏

    改变style.xml 加入 <item name="android:windowNoTitle">true</item> 按理说可以把标题栏隐藏,但是当s ...

  7. 【排障】nginx在reload时候报错invalid PID number

    nginx在reload时候报错invalid PID number nginx重新加载配置文件时候报错,提示无效的PID: 解决的办法有二: 第一种思路是因为是加载配置文件报的错,所以用-c 选项指 ...

  8. 210 - Concurrency Simulator(WF1991, deque, 模拟)

    题目有点长,理解题花了不少时间 粘下别人的翻译~ 你的任务是模拟n个程序(按输入顺序编号为1~n)的并行执行.每个程序包含不超过25条语句,格式一共有5种: var=constant(赋值): pri ...

  9. scala学习笔记:各种奇怪的写法

    Unit函数的定义: def foo()={println("hi")} 等号可以省略: def foo(){println("hi")} update方法: ...

  10. Rabbit MQ安装配置及常见问题

    Window安装 1:RabbitMQ安装 1.1:安装Erlang:http://www.erlang.org/ 1.2:安装RabbitMQ:http://www.rabbitmq.com/dow ...