(转)Arcgis API常用接口调用方法
var map, navToolbar, editToolbar, tileLayer, toolbar;
//var mapBaseUrl = "http://localhost:8399/arcgis/rest/services/pdsTile/MapServer";
//var mapDyUrl = "http://localhost:8399/arcgis/rest/services/pds/MapServer";
//var mapDyUrl = "http://10.19.110.130:8080/arcgis/rest/services/BaseMAP/MapServer";
var mapDyUrl = "http://10.19.110.130:8080/arcgis/rest/services/baseMAP/MapServer";
var mapBjUrl = "http://10.19.110.130:8080/arcgis/rest/services/YCBJ/MapServer";
var dynamicMapServiceLayerBj;
function init() {
try{
map = new esri.Map("map");
//tileLayer = new esri.layers.ArcGISTiledMapServiceLayer(mapBaseUrl);
//map.addLayer(tileLayer);
var dynamicMapServiceLayer = new esri.layers.ArcGISDynamicMapServiceLayer(mapDyUrl);
map.addLayer(dynamicMapServiceLayer);
dynamicMapServiceLayerBj = new esri.layers.ArcGISDynamicMapServiceLayer(mapBjUrl);
map.addLayer(dynamicMapServiceLayerBj);
//初始化
dojo.connect(map, "onLoad", dxInit);
}catch(e){alert("地图初始化失败:"+e.message);}
}
function dxInit()
{
try{
//alert(map.isDoubleClickZoom);
//map.disableDoubleClickZoom();
//比例尺显示
//window.setTimeout("queryMapScale.init(map);", 1000);
//禁止双击放大
map.disableDoubleClickZoom();
//初始化导航工具条
navToolbar = new esri.toolbars.Navigation(map);
dojo.connect(navToolbar, "onExtentHistoryChange", extentHistoryChangeHandler);
//初始化在线编辑工具条
editToolbar = new esri.toolbars.Edit(map);
dojo.connect(map.graphics, "onClick", function(evt) {
dojo.stopEvent(evt);
activateToolbar(evt.graphic);
});
//初始化绘制工具条
toolbar = new esri.toolbars.Draw(map);
//dojo.connect(toolbar, "onDrawEnd", addToMap);
//显示坐标
dojo.connect(map, "onMouseMove", showCoordinates);
dojo.connect(map, "onMouseOut", hideCoordinates);
//加载鹰眼图、加载图层列表
dojo.connect(map, "onLayerAdd", showLayers);
//加载之前记录标注
//window.setTimeout("getBz();", 1000);------------------------------
//地图窗口更新
//alert(document.getElementById('map1'));
resizeMap();
dojo.connect(document.getElementById('map1'), 'resize', resizeMap);
//双击map,定位街景
dojo.connect(map, 'onDblClick', zoomTo3D);
//图层控制
layersCotrol([0]);
}catch(e){
alert("地图初始化失败:"+e.message);
}
}
//图层控制
function layersCotrol(visible){
try{
dynamicMapServiceLayerBj.setVisibleLayers(visible);
}catch(e){
alert(e.message);
}
}
//显示图层列表
function showLayers(){
try{
//在下拉框中显示所有图层名称
var layers = dynamicMapServiceLayerBj.layerInfos;
var obj1 = new Option("", -1);
for(var i=0; i<layers.length; i++){
var obj = new Option(layers[i].name, i);
dojo.byId("layers").add(obj);
}
}catch(e){
alert(e.message);
}
}
//选择图层
function selectLayer(){
try{
layersCotrol([dojo.byId("layers").value]);
}catch(e){
alert(e.message);
}
}
//刷新map
function resizeMap(){
map.resize();
map.reposition();
}
//定位街景
function zoomTo3D(evt)
{
var point = evt.mapPoint;
var x = point.x.toFixed(4);
var y = point.y.toFixed(4);
//window.top.addmark(x, y);
//alert(x + '|' + y);
// 定位街景
LocationTrueMap(x, y);
}
// 根据坐标加载街景
function LocationTrueMap(x, y) {
window.top.frames["mapframe"].frames["ldframe"].showVisionByLngLat(x, y); //定位到街景
}
//鹰眼图
function showOverview() {
var layer = new esri.layers.ArcGISDynamicMapServiceLayer(mapDyUrl);
layer.setImageFormat("png24");
try{
var createOverviewMap = function() {
overviewMapDijit = new dijits.overview.OverviewMap({
map: map,
baseLayer: layer,
width: 150,
height: 150,
attachTo: "bottom-right",
expandFactor: 1.42,
color: "#80A8C1",
opacity: 0.5
});
overviewMapDijit.startup();
};
}catch(e){
alert("加载鹰眼图失败:"+e.message);
}
if (layer.loaded) {
createOverviewMap();
}
else {
dojo.connect(layer, "onLoad", createOverviewMap);
}
}
//前一视图、后一视图
function extentHistoryChangeHandler() {
dijit.byId("zoomprev").disabled = navToolbar.isFirstExtent();
dijit.byId("zoomnext").disabled = navToolbar.isLastExtent();
}
//显示坐标值
function showCoordinates(evt)
{
try{
var mp = evt.mapPoint;
dojo.byId("info").innerHTML = mp.x.toFixed(4) +","+ mp.y.toFixed(4);
}catch(e){
alert("显示坐标值错误:"+e.message);
}
}
//隐藏坐标
function hideCoordinates(evt){
dojo.byId("info").innerHTML = "";
}
//平移
function pan(){
try{
toolbar.deactivate();
map.setMapCursor('default');
navToolbar.activate(esri.toolbars.Navigation.PAN);
}catch(e){
alert(e.message);
}
}
//清空地图
function clearMap(){
navToolbar.deactivate();
toolbar.deactivate();
map.graphics.clear();
map.setMapCursor('default');
}
//添加标注到地图方法1
var handler;
function addBzToMap1(){
toolbar.deactivate();
map.setMapCursor('crosshair');
handler = dojo.connect(map, "onClick", addPoint);
}
function add(x, y) {
window.parent.showdialog('add','', x,y);
}
function modify(id, x, y) {
window.parent.showdialog('modify', id, x, y);
}
function del(id, x, y) {
//alert(x + "--" + y);
window.parent.showdialog('del', id, x, y);
}
function addPoint(evt) {
try{
var symbol = new esri.symbol.PictureMarkerSymbol('images/nav/bz.png', 25, 25);
var point = new esri.geometry.Point(evt.mapPoint, new esri.SpatialReference({ wkid: 4326 }));
var graphic = new esri.Graphic(point, symbol);
map.graphics.add(graphic);
map.infoWindow.setTitle("新标注");
var geoPt = evt.mapPoint;
map.infoWindow.setContent("<b>X坐标: </b>" + geoPt.y.toFixed(4)
+ "<br><b>Y坐标: </b>" + geoPt.x.toFixed(4)
+ "<table></table>"
+ "<br><input type='button' value='添加属性' onclick='window.top.addmark(" + geoPt.x.toFixed(4) + "," + geoPt.y.toFixed(4) + ")'>"
);
map.infoWindow.show(evt.mapPoint,map.getInfoWindowAnchor(evt.screenPoint));
map.setMapCursor('default');
dojo.disconnect(handler);
window.top.frames["mapframe"].frames["ldframe"].showVisionByLngLat(geoPt.x.toFixed(4), geoPt.y.toFixed(4)); //定位到街景
}catch(e){
alert("添加标注出错:"+e.message);
}
}
//定位
function zoomToPoint(x, y){
var geoPoint = new esri.geometry.Point({"x":x,"y":y}, map.spatialReference);
map.centerAndZoom(geoPoint, 3);
}
//小汽车定位
//zoomCar(113.32,23.12);
function zoomCar(x, y) {
navToolbar.deactivate();
map.graphics.clear();
try{
var geoPoint = new esri.geometry.Point({"x":x,"y":y}, map.spatialReference);
map.centerAndZoom(geoPoint);
var symbol = new esri.symbol.PictureMarkerSymbol('images/nav/car.png', 24,24);
var graphic = new esri.Graphic(geoPoint, symbol);
map.graphics.add(graphic);
}catch(e){
alert("小汽车定位" + e.message);
}
}
var url = "http://192.168.1.11:8080";
//接收主题名称、坐标值
function getBz(aa) {
var graphicsLayer = new esri.layers.GraphicsLayer();
try {
for (var i = 0; i < aa.length; i++) {
a_x = aa[i][1];
a_y = aa[i][2];
// alert(a_x+"---"+a_y);
var point = new esri.geometry.Point(a_x, a_y, map.spatialReference);
var symbol = new esri.symbol.PictureMarkerSymbol('images/nav/bz.png', 25, 25);
var textSym = new esri.symbol.TextSymbol(aa[i][0]);
textSym.setAlign(esri.symbol.TextSymbol.ALIGN_END);
var graphic = new esri.Graphic(point, symbol);
var infoTemplate = new esri.InfoTemplate();
infoTemplate.setTitle("广告信息");
infoTemplate.setContent(
// "<div style='text-align:center;'><img src='" + url + aa[i][5] + "' alt='" + url + aa[i][5] + "' style='width:100px;height:42px;'/></div>" +
// "<b>广告名称: </b>" + aa[i][3] + "<br/>" +
// "<b>广告位置: </b>" + aa[i][4] + "<br/>" +
// "<br><input type='button' value='修改广告' onclick='map.infoWindow.hide();modify(" + aa[i][0] + "," + a_x + "," + a_y + ")'>" +
// " <input type='button' value='删除广告' onclick='map.infoWindow.hide();del(" + aa[i][0] + "," + a_x + "," + a_y + ")'>"
);
graphic.setInfoTemplate(infoTemplate);
var graphicText = new esri.Graphic(point, textSym);
graphicsLayer.add(graphic);
graphicsLayer.add(graphicText);
if (aa.length == 1) {
// zoomToPoint(a_x, a_y);
}
}
} catch (e) {
alert("获取坐标点数组出错:" + e.message + "---aa:" + aa);
}
map.addLayer(graphicsLayer);
}
//在线编辑--移动要素
function activateToolbar(graphic) {
try{
var tool = 0;
tool = tool | esri.toolbars.Edit.MOVE;
//tool = tool | esri.toolbars.Edit.EDIT_VERTICES;
//tool = tool | esri.toolbars.Edit.SCALE;
//tool = tool | esri.toolbars.Edit.ROTATE;
var options = {
allowAddVertices: true,
allowDeleteVertices: true
};
editToolbar.activate(tool, graphic, options);
dojo.connect(map.graphics, "onDblClick", showInfoWindow);
}catch(e){
alert("移动要素问题:"+e.message);
}
}
function showInfoWindow(evt){
evt.stopPropagation();
map.infoWindow.setTitle("新标注");
var geoPt = evt.mapPoint;
map.infoWindow.setContent("<b>X坐标: </b>" + geoPt.y.toFixed(4)
+ "<br><b>Y坐标: </b>" + geoPt.x.toFixed(4)
+ "<table></table>"
+ "<br><input type='button' value='添加广告' onclick='map.infoWindow.hide();add(" + geoPt.x + "," + geoPt.y + ")'>"
);
map.infoWindow.show(evt.mapPoint,map.getInfoWindowAnchor(evt.screenPoint));
}
//框选
function queryBz()
{
map.setMapCursor('crosshair');
navToolbar.deactivate();
toolbar.activate(esri.toolbars.Draw.EXTENT);
toolbar.onDrawEnd = function doQueryExtent(extent) {
window.parent.stat(extent.xmin, extent.ymin, extent.xmax, extent.ymax);
// //获取框选区域的坐标范围
// alert("xmax:"+extent.xmax+",xmin:"+extent.xmin+", ymax:"+extent.ymax+",ymin:"+extent.ymin);
};
}
(转)Arcgis API常用接口调用方法的更多相关文章
- 基于apache httpclient的常用接口调用方法
现在的接口开发,大部分是基于http的请求和处理,现在整理了一份常用的调用方式工具类 package com.xh.oms.common.util; import java.io.BufferedRe ...
- phpcms常用接口调用方法
常用函数 , 打开include/global.func.php,下面存放一些公共函数 view plaincopy to clipboardprint?function str_charset($i ...
- ArcGIS API for Silverlight 调用WebService出现跨域访问报错的解决方法
原文:ArcGIS API for Silverlight 调用WebService出现跨域访问报错的解决方法 群里好几个朋友都提到过这样的问题,说他们在Silverlight中调用了WebServi ...
- ArcGIS API for Silverlight 调用GP服务准备---GP模型建立、发布、测试
原文:ArcGIS API for Silverlight 调用GP服务准备---GP模型建立.发布.测试 第一篇.GP降雨量等值线建模.发布及测试 在水利.气象等行业中,要在WebGIS中实现空间分 ...
- SERVLET类常用接口及方法
SERVLET类常用接口及方法 2011-09-09 16:14:43 [size=xx-small]SERVLET类常用接口及方法2007年04月05日 星期四 04:46 P.M.基本类和接 ...
- ArcGIS API for Silverlight 调用GP服务绘制等值面
原文:ArcGIS API for Silverlight 调用GP服务绘制等值面 GP服务模型如下图: 示例效果图片如下:
- ArcGIS API for Silverlight 调用GP服务加载等值线图层
原文:ArcGIS API for Silverlight 调用GP服务加载等值线图层 第二篇.Silverlight客户端调用GP服务 利用ArcGIS API for Silverlight实现G ...
- 新浪网易淘宝等IP地区信息查询开放API接口调用方法
通过IP地址获取对应的地区信息通常有两种方法:1)自己写程序,解析IP对应的地区信息,需要数据库.2)根据第三方提供的API查询获取地区信息. 第一种方法,参见文本<通过纯真IP数据库获取IP地 ...
- 云极知客开放平台接口调用方法(C#)
云极知客为企业提供基于SAAS的智能问答服务.支持企业个性化知识库的快速导入,借助语义模型的理解和分析,使企业客户立即就拥有本行业的24小时客服小专家.其SAAS模式实现零成本投入下的实时客服数据的可 ...
随机推荐
- C# 数据回滚
public int GetExecteQuery(string strAddSql, string strUpdateSql, string strDelSql) { SqlConnection c ...
- C Primer Plus(第五版)8
第 8 章 字符输入/输出和输入确认 在本章中你将学习下列内容: · 有关输入,输出以及缓冲和非缓冲输入之间的区别的更多内容. · 从键盘模拟文件结尾条件的方法. · 如何重定向将你的程序与文件相连接 ...
- SQL 语句转换格式函数Cast、Convert 区别
SQL 语句转换格式函数Cast.Convert CAST和CONVERT都经常被使用.特别提取出来作为一篇文章,方便查找. CAST.CONVERT都可以执行数据类型转换.在大部分情况下,两者执行同 ...
- 自动生成Makefile时,关于Makefile.am编写
最近编译一个项目的程序时,二十几个源代码文件放在六个文件夹中,而且各个文件中头文件互相包含.以前写过编译这样组织的源码的makefile,所以这次也就直接写了. 确实因为各个文件间的头文件互相包含,造 ...
- MapHttpRoute
http://aspnetwebstack.codeplex.com/SourceControl/latest#src/System.Web.Http/HttpRouteCollectionExten ...
- 菜鸟-教你把Acegi应用到实际项目(9)-实现FilterInvocationDefinition
在实际应用中,开发者有时需要将Web资源授权信息(角色与授权资源之间的定义)存放在RDBMS中,以便更好的管理.事实上,我觉得一般的企业应用都应当如此,因为这样可以使角色和Web资源的管理更灵活,更自 ...
- win7-opengl开发环境的搭建
1. glut的安装: 下载glutdlls37beta.zip,下载链接直接opengl.org上找. 把glut.h 复制到include下: glut.lib, glut32.lib复制到C:\ ...
- 【Unity Shaders】学习笔记——SurfaceShader(三)BasicDiffuse和HalfLambert
[Unity Shaders]学习笔记——SurfaceShader(三)BasicDiffuse和HalfLambert 转载请注明出处:http://www.cnblogs.com/-867259 ...
- Eclipse插件开发之基础篇(4) OSGi框架
转载出处:http://www.cnblogs.com/liuzhuo. 1. 什么是OSGi框架 OSGi(Open Service Gateway Initiative)框架是运行在JavaVM环 ...
- Flex 日期选择器控件
在构建用户界面时,经常用到日期的输入和选择. 输入日期时,用户可以使用键盘输入,也可以在类似于日历的弹出式对话框中,通过鼠标单击所选日期. 在Flex中可以通过日期输入控件实现输入和选择日期.Flex ...