ArcGIS for JavaScript 关于路径开发的一些记录(三)

最近被一个bug困扰了两天~

我新发布了一个NAserver(路径分析服务),但是放在之前的代码里面发现不能生成路径。经过我的调试发现并没有代码并没有报错,并且能够返回所生成路径的Graphic layer,但路径就是不能在地图上显示出来!

期间我的解决办法是思考可能造成这个现象的各种原因(写在纸上),然后逐一调试、排除,到最后把我所能够想到的所有可能的原因都排除了。。。

无可奈何,我开始通过各种Arcgis for Javascript相关的QQ群、甚至是Google到国外的一些论坛去翻阅有没有相似的问题。最终得到了一个很有可能的原因:虽然程序没保存,也返回了相关的数据,那返回的数据是不是正确的数据呢?带着这个问题我开始查找如何能够把返回的Graphic layer数据在地图上画出来,后来我通过官方的API发现Graphic(Json)这个构造函数,然后就取了放回数据中Paths中的第一个点和最后一个点在地图上画线,结果发现返回的两个点果真不能在地图上画线,然后我把BaseMap的url换成NAserver相对应的MapServer的url后发现线可以画出来。到这里我就猜测:这两个点的坐标是NAserver上的坐标,是不是由于NAserver上的地理坐标系和我之前的BaseMap的地理坐标系不一样呢。然后我便开始重新创建NAserver,做出来如下操作便使得两个地图的地理坐标系一直。

在创建Feature dataset的时候,在这一选项的时候便是选择NAserver的地理坐标系,如果你不知道自己的BaseMap的地理坐标系是什么,你只用点击那个地球选项中的import选项并选择自己的公路要素便能使其地理坐标系一致。

下图是console.log()出的graphic,然后根据其找到paths并找到其中点的坐标。

以下是相关的console的代码和根据paths中的点通过Json的方式来画线。

 
		function showRoute (result) {

			var routeResults = result.routeResults;
			map.graphics.add(routeResults[0].route.setSymbol(routeSymbol));
			routes.push(
				routeResults[0].route.setSymbol(routeSymbol)
				);

			console.log(routeResults[0].route.setSymbol(routeSymbol));
			var polylineJson = {
			    "paths":[[[94.44745433000008,38.53435435800003], [98.10367744400008,37.354744794000055]]],
			    "spatialReference":{"wkid":4326}
			};
			var polyline = new Polyline(polylineJson);
			var gra = new Graphic(polyline, new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, new Color([255, 0, 0, 0.5]), 1));
			map.graphics.add(gra);
			var msgs = ["服务器消息:"];
		    for (var i = 0; i < result.messages.length; i++) {
		        msgs.push(result.messages[i].type + " : " + result.messages[i].description);
		    }
		    if (msgs.length > 1) {
		        alert(msgs.join("\n - "));
		    }
		}

总结:这是我第一次问了解决一个问题而倔了两天的时间,这个中间的过程真的不容易,因为你一直是建立自己的假象然后又不停的推翻自己的假象,不知道自己什么时候才能够解决这个问题又或是自己能不能解决这个问题。。。值得我自己肯定自己的是这这个过程中我始终相信一点:如果我放弃了,我就根本不可能成为一名工程师(我认为我目前只是一名程序员,而我的理想是成为一名工程师~)因此我一直在坚持着一直在倔强着,中间通过各种方法在互联网中寻找一些解决问题的提示最后也的确获得了关键的提示并解决了问题。最后,我觉得发现问题并解决问题的能力是一个优秀程序员必备的能力,我现在就要往成为一名优秀程序员的路上一直走下去~

最后,Stick to write blog!

时间: 2024-10-11 17:25:09

ArcGIS for JavaScript 关于路径开发的一些记录(三)的相关文章

ArcGIS for JavaScript 关于路径开发的一些记录(一)

今年毕业,进入公司的第一个任务就是单独负责一个项目的地图模块,用ArcGIS API for JavaScript来开发web地图.花了大概一个礼拜的时间学会了安装和搭建ArcGIS Server和ArcGIS DeskTop并且成功的发布了第一个本地的地图服务,之后花了大概1个月的时间来了解ArcGIS for JavaScript的官方API和Sample.由于官方的文档都是英文的,刚开始还真是很难看的懂(或许是当时太浮躁了).但时间久了也就慢慢的进入状态了,每天都能够学到不同的知识点,这种

ArcGIS for JavaScript 关于路径开发的一些记录(二)

又是高度集中开发路径模块的一天.真希望自己以后都可以如此的专注和高效(虽然知道很难一直都保持这样的状态,我会坚持的~哈哈哈) 言归正传,今天开发了途径点的功能和改进了些相关起点.终点的代码.先说一下我近点遇到的几个主要的问题(最近遇到问题都会把问题手写在纸上,这样能让自己更好的专注于问题本身,能在最短的时间内解决问题并且方便现在写博客) 1.如何像百度地图一样把途径点的个数控制在五个以内.代码如下: ctMenuForMap.addChild(menuItem = new MenuItem({

全国首部arcgis for javascript 二次开发视频教程

百度传课:http://www.chuanke.com/2873165-137674.html 51cto:http://edu.51cto.com/course/course_id-3949.html 网易云课堂:http://study.163.com/course/courseMain.htm?courseId=1270003 CSDN:http://edu.csdn.net/course/detail/1071 课程主要内容: 1.arcgis 基础 2.webgis基础 3.dojo基

arcgis api for js入门开发系列二不同地图服务展示(含源代码)

上一篇介绍了arcgis api离线部署,这篇开始正式介绍arcgis api for js开发:想要学习webgis开发,首先得熟悉了解前端技术,比如界面布局设计的html+css,核心的是javascript(js),arcgis api就是js写的,就是说想要开发gis功能前提下,你得熟悉了解js,不然你连源代码都看不懂.在这里,推荐esri官网的arcgis api for js:https://developers.arcgis.com/javascript/3/jsapi/:里面详细

seajs实现JavaScript 的 模块开发及按模块加载

seajs实现了JavaScript 的 模块开发及按模块加载.用来解决繁琐的js命名冲突,文件依赖等问题,其主要目的是令JavaScript开发模块化并可以轻松愉悦进行加载. 官方文档:http://seajs.org/docs/#docs 首先看看seajs是怎么进行模块开发的.使用seajs基本上只有一个函数"define" fn.define = function(id, deps, factory) { //code of function- } 使用define函数来进行定

[转]全 Javascript 的 Web 开发架构:MEAN

引言 最近在Angular社区的原型开发者间,一种全Javascript的开发架构MEAN正突然流行起来.其首字母分别代表的是:(M)ongoDB——NoSQL的文档数据库,使用JSON风格来存储数据,甚至也是使用JS来进行sql查询:(E)xpress——基于Node的Web开发框架:(A)agular——JS的前端开发框架,提供了声明式的双向数据绑定:(N)ode——基于V8的运行时环境(JS语言开发),可以构建快速响应.可扩展的网络应用. MEAN的支持者宣称,如果整个开发栈均能使用JS,

《ArcGIS Runtime SDK for Android开发笔记》——离在线一体化技术:离线矢量数据同步

1.前言 上一篇文章中我们实现了离线要素的编辑操作,这一篇中主要介绍离在线一体化技术中最后一个环节离线数据的同步功能,通过对数据的上传,服务器端的版本化管理,实现数据生产管理的整个流程. 转载请注明出处:http://www.cnblogs.com/gis-luq/p/5858062.html 2.demo实现过程 2.1.Demo UI实现 activity_main.xml <?xml version="1.0" encoding="utf-8"?>

JavaScript获取路径

1.设计源码 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>JavaScript获取路径</title

ArcGIS for JavaScript 3.9 本机IIS部署

arcgis 官方网站经常会打不开,天朝人民都懂得!因为将arcgis for javascript 配置到本机访问 首先esri中国下载最新版3.9的API: http://support.esrichina-bj.cn/2011/0223/960.html 下载到本机后 将压缩包解压 复制这个arcgis_js_v39_api/arcgis_js_api到iis的根目录(当然你可以复制到你的项目所在的目录下). 即:C:\Inetpub\wwwroot\目录下 172.16.5.238 为我