gdb 浏览器支持javascript吗

博客访问: 338090
博文数量: 74
博客积分: 612
博客等级: 中士
技术积分: 1094
注册时间:
蝴蝶翅膀的力量,也许能够改变这个世界。
APP发帖 享双倍积分
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
分类: LINUX
gdbserver对mips的支持是有版本限制的,gdb6.8不行,改到最新的7.3版本就好了。主要原因是低版本的需要linux的ptrace支持single step, x86和arm支持,而mips没有。看了下gdbserver7.3的代码,单步不再使用ptrace的single step的实现了。感觉mips体系结构下使用gdbserver的很少,网上很少有这类的文章,大都是ARM的,遇到问题通过google的方式去解决有些难度。
阅读(1104) | 评论(1) | 转发(1) |
相关热门文章
给主人留下些什么吧!~~
百度知道有好多精华的问答~google不太好用
请登录后评论。JavaScript调试器VenKman【firefox插件】
个强大的新工具现在提供给使用基于Mozilla的系列浏览器(包括Firefox,Mozilla套件和Netscape
7.x)的Web开发人员。JavaScript调试器,又名“Venkman”,已经成为Mozilla浏览器、Web社区和脚本开发人员的一部分很长
时间了。这篇文档提供一个JavaScript调试器的概览和一些在Web页面脚本开发中使用它的实际例子。这篇“入门”是一系列关于Venkman文档
的第一篇。假设你已经开始使用Venkman,这里所提到的特性、程序和要点会让你作为一个Web开发人员或脚本调试者更加自信。
Venkman是一个同时拥有控制台界面和图形界面的调试器。你可以根据自己的喜好或特长,从控制台界面或图形界面使用“断点控制”,“调用栈”和
“变量/对象监视器”。交互式的命令行界面允许你执行任何可用的JavaScript代码。Venkman的键盘快捷键可用于可视化的调试环境,gdb用
户对于Venkman的/break,/step,/next,/finish,/frame,/where命令一定非常熟悉。
在Windows平台上上,JavaScript调试器的界面外观和Visual
Interdev以及其它大型的web开发工具是很相似的。在其它操作系统平台上,如Mac
OS和Unix,它提供了一个在易用性、性能居于同等水平上的独特的开发调试环境。
开始使用调试器
JavaScript调试器会被自动的预装在Mozilla
1.x里,但是在Firefox和其它基于Gecko的产品中(如Thunderbird和Netscape
7.x)中必须被单独安装。幸运的是,XPInstall技术使你只需要点击一个超级链接就可以在Firefox安装一个新的应用模块。
如果你还没有拥有Venkman,并且希望升级使用它,你可以通过访问来获得最新版本。
最新版本(JavaScript Debugger 0.9.87.4)(最新版本支持ff3)官方下载:
注:我是试了试了10几次,提示下载失败;
幸好从台湾一台服务器上下载了一个:JavaScript Debugger 0.9.87.4
安装方法:解压——直接将javascript_debugger-0.9.87.4-fx+tb+sb+sm.xpi文件拖入
安装过程只需要两个步骤:首先,从你希望安装Venkman的浏览器中,访问
页面,点击“install”链接获得最新版本。下载完成后,重新启动你的浏览器(一些Windows用户可能还需要重新启动计算机)。
You can then access the debugger via a new, dynamically created
menuitem in the Tools menu of that browser, or else restart the
browser with a special debugger option.
如果你想查看你使用的Venkman的版本号,在交互视图区域中输入/version。 如果想了解更多关于版本和升级的信息,请访问.
下面有两种启动调试器的方法:
在Firefox浏览器中,你可以通过选择“工具”菜单中的“JavaScript
Debugger”来启动调试器(在Mozilla
1.x和Netscape浏览器中,“Tools”-&“Web Development”)。
你可以使用带有参数-venkman的命令启动浏览器。
(当Venkman启动显示"Recorded local startup X, global
YYY."时,请注意这些有用的信息。This data comes from a counter built in to the
application. For more information about this counter and the data,
in the Venkman FAQ.)
Figure 1. The JavaScript
每一个视图面板都有一个“标签”,一个“浮动按钮”(使面板脱离调试器主窗口,拥有自己单独的窗口)和一个“关闭按钮”。
这里再在FireFox中刷新刚才打开的网页,再回到Venkman,可以从左侧的Loaded
Script中会多出相应的js文件,如果网页中有js代码,也会出现在此列表中;
Venkman中共有八个窗口,左侧六个,分别为:Breakpoints[断点列表],Local
Variables[本地变量],Loaded Scripts[已加载脚本],Call
Stack,Watches[监视窗口]
右侧两个,分别为Source Code[源码窗口]与Interactive session[交互会话窗口]
Sourde Code:可以看到源代码,在每行行首的左侧可以设置断点,同时该断点会出现在Breakpoints中
Interactive session:
显示当前的信息,下方有一个命令行,可以输入变量或javascript语句来在Interactive session中查看结果。
运行venkman既然已经装好了Mozilla,是时候让venkman大显身手啦!打开Mozilla,在“工具”Tools--&“网页开发”Web
Developement--&“JavaScript调试器”JavaScript
Debugger,如图2。
注意:当你的Mozilla打开一些网页,而你此时点开了venkman,那么所打开的页面都会被装载进mozilla中进行调试。由此可见,多个页面可以一起调试(但为了保证健全性,我还是建议一次调试一页)。
当venkman启动后,它的样子应该如下图3。
如果有些面板不太一样(或是少了,或是位置不对),只需要在图右下角的控制台console里输入"/restore-layout
factory",就将会看到和图中一样的效果啦!
使Venkman符合个人习惯Venkman总共包括8个提供信息的窗口[面板],其中一些在使用时发挥的作用较大。再此,只是一个配置版面的快速指南(无非也就是用鼠标点啊拖啊放啊之类的)。如果你想知道版面摆放的样子有哪些,建议可以去看看Robert
Ginda写的“版面截图大全”,
地址如下:
无论何时,如果你想回到最初的那样,只需要象前面说的在控制台输入:"/restore-layout
factory"就可以了。
在“视图”菜单中,你可以看到这两个选项“现在就保存默认版面”Save Default Layout
Now和“退出时保存默认版面”Save Default Layout On
Exit。如果你想为将来的用途而保存自己设置的某一个面板,记得按你的需求勾上其一。
好了,前面讲的你都会了吗?现在关掉VENKMAN,用ff访问
这是我写的东西,它们是一系列包含SCRIPT的HTML文件,旨在说明VENKMAN的各个功能,当需要进入下一页时,我会告诉你点击链接的。
读取源代码
VENKMAN包含的基础操作之一是检查当前载入VENKMAN中的源代码。值得注意的是,VENKMAN只提供查看的功能,并不能修改,它不是编辑器。
现在“源代码”面板里没有内容,那是因为你还没有给VENKMAN指派什么事情(如果你什么都不指派的话,VENKMAN开始调试时自动显示与其相关的代码)
让我们动手试试查看HTML代码。有两种途径可以取得代码。
第一,你能看整个页面的代码(在这里,我们使用之前让大家打开venkman_example_1.html作为例子)或者直接跳到函数定义的地方。[我想这句话的意思是,要么看所有的代码,但如果只关心函数的话,可以通过VENKMAN直接查看而不去关心其他的代码。]
查看代码很简单,但得先确保你的“下载scripts”(Loaded
Scripts)面板可见,参考图9(忽略XStringBubdle以及其他一些可能在在框里出现的东西,这不过是mozilla带的没用的附属东西)。
现在双击Loaded
Script面板中HTML文件名,将会在“源代码”(source
code)面板中出现文件的代码(如果出错或者有什么其他问题,尝试将窗口最大化后保存窗口大小),如图10。
当你双击文件名的同时,也将其树形结构打开(如果没有的话,你点击加号也可以打开)。下一层结构里的文件是包含在其HTML中的所有函数(比如图10中的test)。
双击函数名,在HTML文件显示中将会以高亮来显示函数的代码。如图11。
Scripts面板中不仅仅是这个HTML文件,与其链接的JS文件同样也会被列出来。它们之间的操作没有什么不同。
刚才用Loaded Scripts面板读取HTML的源代码。你将会注意到每个文件在Loaded
Scripts中的图标是有所不同滴~下面将图标与其含义列出来:
JavaScript (.js)
Hypertext Markup Language (.html,
eXtensible Userinterface Language
eXtensible Markup Language (.xml)
All other files
JavaScript function
基本上这就是MOZILLA中包含可执行JS的所有文件了。在每个载入的文件中将会看见文件中定义的函数。如果在函数名旁有括号出现,是指venkman建议此处取名。参见
交互式会话(interactive
学会了如何查看文件,现在来学习交互式会话。一个venkman很基础却非常有用的功能。
注意到一个名字叫“interactive
session”的面板了吗?当你启动venkman时它就开始显示信息。带有过程处理的文本以venkman命令或其他的形式输入时以JS来执行。我们
来试试在下面的输入框中写进“1+1”,接着回车。输出箭头右边显示结果“2”。
让我们再进一步尝试,输入“b=65”[可在交互式会话中输入任何类型的代码,包括变量声明]。
因为这是JS,你不仅可以声明变量,还可以使用基础MATH,调用JS中的对象,比如:String类。试着输入:String.fromCharCode(b)
结果是AB。
帮助文件我们只需要在interactive
session下的输入框中写:/help或者是/help commandname
就可以看到浏览器中显示出的帮助文件。
设置上下文当我们启动venkman时,“评估上下关系”(evaluation
context)是程序自身的程序代码,这意味着JS代码由venkman来评估。然而我们让由MOZILLA加载的所有文档都具有这样的上下关系该怎么
做?首先,将Loaded Scripts下方的标签换成“open windows”,如图15。
点击Navigator
Window下面的小加号,加号旁边的名字应该是加载到MOZILLA中的文件名venkman_example_1.html
右键点击文件名,选择“Set as evaluation object”(将其设置为评估对象),如图16。
现在你把HTML文件设置成为评估对象,你输入的JS就能操作加载进去的文件,也能从相同文件中析取信息。尝试在交互式会话中输入:document.title
输出的则是该文件的标题。[如果没有勾上该选项,输出的将是JavaScript Debugger]
因为在这个文件中我们声明了变量a,因此再输入a,将会返回它的值。
你不仅可以通过交互式会话来检查文档,还可以对其进行充分的操作。试着改变文档的标题:document.title =
"muahah" +
如图12,输出muahah1的同时标题的值也发生了变化。
在对话框中按上下键(因为它记得历史命令),再查看文档的标题。返回值为muahah1。
前面部分都主要讲的是检查静态文档,其实我们很少检查静态的,除非你用setTimeout之类的东西载入有事件发生的文档当中。现在我们来讲解动态及可执行脚本,虽然有很多种途径,但我们以最简单容易的入门。
首先,关掉venkman,点击venkman_example_1.html中的链接进入venkman_example_2.html再如常启动venkman,把新文档设置为评估对象。
{貌似venkman在这里有个bug,就是关掉script
debugger后再打开的话是没有效的。如果有达人知道怎么回事的还请赐教。我用的方法就是删除mozilla下extensions中的
venkman对应的plugin文件夹{f13b157f-b174-47e7-a34d-4815ddfdfeb8},然后再将venkman的
xpi文件拷下来重新安装,真的很费劲}
{啊!原来不必关掉,直接reload就可以了,或者按ctrl+R,西西!}
你或许已经注意到工具条,并对其的功能充满好奇。现在你就可以用到它们啦!按下“Stop”键,你会发现它变成一个带有三点的停止符号,如图20。但是其他的按纽并没有变。
停止按纽会通知Venkman,仅仅停止(或暂停)当时正在执行的脚本。在此例中,没有脚本正在执行,所以也没有什么可关闭的。Venkman转到“等待事件发生”的状态。
一旦脚本开始执行(造成所有的东西重新运行的点击、触发事件或者页面重载),Venkman将会插手阻止这一切。
现在,我们调回目光到Mozilla身上,按下“Reload”键或是Ctrl+R。一旦按下,Venkman将会返回。原因是,当你按重载时,Mozilla重新载入页面,并开始执行页面中的脚本。
刚刚暂停页面脚本的Venkman应该如图21,注意当前行以黄色高亮,并且其他工具条上的按纽可用。
Stepping我们现在已经接触了调试器的基础部分,比如暂停脚本的运行,当Mozilla运行它时,你能看到每一行代码。
按钮:step over/step into/step
out。当你的鼠标指在按纽之上时,工具提示会分别告诉你他们“跨过函数的调用”、“进入函数调用”、“跳出当前函数调用”。眼下,我们忽略
“continue”(继续)、clock以及pretty flower几个按钮。
因此,你都可以控制调试器对JS中所给的任一行进行以上三种操作。{step over/step into/step out}
但请注意,这是“无打扰”特性,因为你step over了一个函数调用,却不意味着代码没被执行!这种情形我们很快就会给你演示。
现在,调试器暂停在JS的第一行(这行什么也没有,是空滴!)。按“step
into”键,或是F11,让其到下一行。现在调试器暂停在了第4行,变量的声明处。现在试着在交互式会话中输入a,返回值应该是空。
现在再按一次“step
into”,再输入一次a,你将会看到其值又是1了。
下一行,是函数声明,只需要再按一次step
into,你会注意它直接跳到第9行,那当然是因为函数声明是一个单独的整体。
现在所在行是:var b=test(a);
在交互式对话框里输入a,注意输出是1。输入test(a),输出是:&$[0]=[string]"passed
到目前为止,还没有什么让我们惊讶的东西出现。不过,一旦你按了某个键,马上就会有了。如果你按 下"step into",venkman会跳至第6行,并一行行的运行函数。如果按"step
over",函数仍会运行,只是你看不见而已{这就是我们在前面说到过的"无打扰"的特性}。试着按"step
over",并输入"b",它的值将是"passed:1".
继续按"step
into/over",直到脚本最后。你会看到按纽变为再次变得不可用,stop按钮再次显示"waiting".你最好再reload一次页面,多试几次其他的方法,从而可以更好的感觉按钮的作用。
图中几句话一起翻译了:&&&&
venkman支持在source code框中显示范围域.如图21中所显示的灰色区域,就是黄色行的范围.
调试器关键字
使用stepping的方式读完一个拥有大量信息的脚本显然很不方便。为此,你可以使用调试器关键字。不管脚本在何时运行,关键字在何时使用,venkman在何时运行,何时停止。
在mozilla中,转到下一个文件:
接下来,你能看到“debugger”这个字如何在函数内出现。这很像让venkman暂停执行的命令。
function f(a){
return a+1;
document.write( f(t) );
运行venkman,reload一次Mozilla窗口,venkman应该立刻回转至第6行。如图24.
重要的是,使用调试器关键字不会在没有Venkman运行的mozilla中产生错误。然而请注意,只在windows下的支持调试器的Mozilla和IE才会如此。在这些浏览器中,如果没有运行调试器,关键字会被无声的拒绝(也就是没有错误产生)。但可能会在其他浏览器中出现错误,把它们从代码中挑出来!
挑出stuff&DHTML上的标记
当然,venkman允许你跳过你并不关心的代码,这得以遗漏掉调试中文件和个别函数为代价。这个例子和此页中介绍的其他例子有些不同,这里会涉及一个“动态HTML”。我们会看到如何将stuff排除在调试之外,并且venkman如何与“活动”的代码作用。
在mozilla中,我们转到下一个链接。
这个文件非常小,但是它在论证venkman跳过指定函数或整个文件时确实有效。启动venkman,你会马上注意到一些东西。你会看到,例子是由一个链接的文件组成,这个链接的文件包含了一个单独的、小的函数:
function getPx(elm) {
return parseInt(elm.style.left);
}它的作用就是告诉你它与文件如何工作。基本上,当窗口装载(和按下"start"键)时init函数被调用来处理设置一个间隔的、重复调用的ShiftLeft.
ShiftLeft是代码,它的作用是将块移动到左边,直到它到达500像素时候再从100开始。ShiftLeft调用函数getPx用以剖析现在的像素值,这个值来自红盒子的样式设置。clearDHTML是一个函数,通过清除init函数中的timeout(超时?)来停止盒子。
图25中显示了mock_dhtml例子中venkman做装载的文件.
移出一个窗口将你想要移出的窗口拿出来很简单,只需要点击左上角的按钮(undock/dock)就OK,它将会独立成为一个窗口,你想拖到哪就去哪。
想放回去的话,也只需要在独立的窗口中点击左上角的undock/dock。就这样简单!
窗口位置如果你不满意窗口摆放的位置,可以点中窗口的标题然后将其拖到你想放的区域中。如果你拖的位置合适,会显示一个粗条[在边界处],放掉鼠标后窗口的位置就在粗条那里。
如果想把两个窗口合并在一起,可以将其中一个脱到另一个的undock/dock处,这时方格变成了星号,放掉鼠标后,tab
control处可以看到多了一项。
心动不如行动,动手试试,别怕搞乱,这样会让你更有体会。
隐藏窗口点击“close”键可以隐藏窗口,如果想要恢复,到“视图”View菜单下选择子菜单“显示/隐藏”“Show/Hide”勾上你显示的窗口。
在窗口间的横向和纵向上都有很多的间隔线,如图8
拖动他们调节窗口之间的区域大小。
每个面板都有相同的四个元素[⒈移出、移进窗口undock/dock
window;⒉关闭窗口close;⒊标题title bar;⒋控制符号tab control],如图4。
====================================================================
在Venkman中使用断点
调试任何一种编程语言的一个基本任务是设置“断点”。断点表示了代码的执行在什么位置暂停。当你在像Venkman这类调试程序中设置断点时,你可以暂停程序的执行,来检查变量,对象和其它的运行参数。
这篇文章描述了在JavaScript中的断点,和如何在Venkman中设置和使用断点。
基本的断点
“Stop”按钮和debugger命令是JavaScript调试器中很关键的要素,但是当你深入调试极其复杂的代码时,你会发现使用基本的工具已经无能为力,这时你需要断点来帮忙了。
断点的类型
Venkman有两种类型的断点。第一种,也是最常见的,叫做“硬断点”。A hard breakpoint represents
an actual trap instruction included in the pseudocode of a compiled
function. Hard breakpoints can only exist in the context of a
function currently "live" in the browser. Hard breakpoints are the
ones that actually stop program execution.
第二种类型的断点,“将来断点”,represents a promise from Venkman to set a hard
breakpoint as soon as it is possible. Future breakpoints are used
when you want to stop in a script that has not yet been compiled.
The most common use of future breakpoints is to stop in a "top
level" script (script that executes outside of any function), or
script that executes during the onLoad event of a page. When a
script is loaded that matches the URL of a future breakpoint, and
has executable code at the specified line, Venkman will
automatically set a future breakpoint.
除了下面提到的这个差别以外,断点工作在Venkman和工作在其它调试器中的情况是很相似的。你在源代码视图左边框看到的点显示了哪一行包含了可执行的代码,同时也表明了那一行可以设置硬断点。
“Figure 1” Venkman“源代码”视图中标明的可执行代码
在源代码视图中点击一个圆点,就会在这一行设置一个断点。Venkman会在这行代码执行前停止代码的运行。当一个断点被设置后,这一行左侧的边沿就会变成字母"B",如Figure
2。如果你在设置完断点后再次执行代码,Venkman会在第81行停止运行。
“Figure 2” 设置断点
Venkman会在“已加载脚本”视图中显示一个或更多已经设置好的断点,一个红色的圆点会出现在已设置有断点的文件旁,后面还会显示断点所在的函数的行号。
“Figure 3” 在“已加载脚本”视图中的带有断点的文件
使用断点进行调试
当你设置一个断点后,你就给了Venkman(或是任何你使用的调试器)显示执行环境信息的机会。
调试脚本或程序,最重要的表现是,它可以检查函数返回值,错误,计数器,变量作用范围,这些改变了脚本执行的路线。
在Figure 1中的onFlipX函数,例如,使用变量newSign来指明用什么图片表示fish。当你在第81行设置一个断点,你可以激活浏览器窗口的页面,Venkman停止代码的执行,当他加入了onFlipX函数。停在那里,Venkman在本地变量视图中显示了变量newSign的值"1"。
“Figure 4” 在断点处的本地变量
使用断点和交互视图,你可以改变Venkman显示的变量值(仅仅是在调试环境的上下文中),还可以观察这些改变怎样影响代码的执行。
“Figure 5” 在断点处与脚本结合
如果你想获得更多关于“调试动作”的信息,请浏览Venkman入门的章节。
点击两次边框来清除断点。第一次单击会清除硬断点,只保留一个用字母“F”表示的将来断点。第二次单击将会清除将来断点。
“Figure 6” 将来断点
Venkman允许你将一个断点和一段脚本关联在一起:当遇到断点时,这个脚本就会被执行。这个针对关联脚本的高级特性和其他一些选项,你可以在将来断点属性对话框中找到他们,你只需要右键单击一个断点,选择“属性”。
“Figure 7” 将来断点属性对话框
一旦你创建了一个与断点相关联的脚本,你就可以从将来断点属性对话框中选择一些不同的选项,这些选项决定了Venkman如何处理关联脚本的输出。下面是经常用到的选项:
“Continue regardless of result”
使Venkman在运行完断点脚本后继续执行正常的脚本。这对于试验不工作的额外脚本非常有用。
“Stop regardless of result”
使Venkman在运行完断点脚本后停止执行正常的脚本,这允许你检查程序的状态。
“Stop if result is true”
非常有效的将它当作一个条件断点。如果断点脚本返回true值(它并不必须是一个严格的布尔值true,比如非null、非空字符串、非零、非undefined、非false都是可以接受的),脚本执行会继续下去。如果返回false值,Venkman会在断点处停止脚本的执行。
“Early return from caller with result” will cause the function
that the breakpoint is set in to return the value of the breakpoint
script as its result, immediatley after the breakpoint script
completes.
The “Pass exceptions to caller” checkbox allows you to pass
exceptions thrown by the breakpoint script directly to the caller.
Normally, if the breakpoint script generates an exception, Venkman
assumes you made a mistake and stops execution after displaying the
exception. If you would like to see what your code does when
exceptions are thrown at it, check "Pass exceptions to caller", and
thrown an exception from the breakpoint script.
The “Log result” checkbox tells Venkman you want the result of
the script to show up in the Interactive Session View. When used
with the “Continue regardless of result” option, the breakpoint can
be used as a simple log message.
The number of times the breakpoint has been hit is passed in as
a parameter to the breakpoint script. To reset the count, enter a 0
in the "Trigger count" field.
关键性注释
You can also embed scripted breakpoints directly into the souce
code you are debugging by using a Venkman facility called meta
comments. Meta comments are specially formatted comments that
pull in the script named after the comment and specify how to treat
the output of that script. The following meta comment types are
available:
The //@JSD_LOG comment
will insert a breakpoint which is set to execute the script that
follows without stopping. The result of the evaluation will be
logged to the Interactive Session.
The //@JSD_BREAK
comment will insert a breakpoint which is set to execute the script
that follows and stop if the result is true.
The //@JSD_EVAL
command will insert a breakpoint which is set to execute the script
that follows without stopping and without logging the result.
These meta comments can be used to insert debug-only code in
your scripts with zero impact on production code.
To enable meta comments in a script, select "Scan for Meta
Comments" from the context menu of the file in the Loaded Scripts
When you add a meta comment, a normal breakpoint is created. You
can change or delete this breakpoint just as you would a breakpoint
created by hand.
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。你的浏览器禁用了JavaScript, 请开启后刷新浏览器获得更好的体验!
ArcGIS API for JavaScript
回复了问题 o 2 人关注 o 1 个回复 o 68 次浏览 o
o 来自相关话题
例如我用arcgis api加载一张地图,然后用api画一个点线面这类的,那么要怎么保存到数据库中,下次再调用?一直没找到是这方面的资料,求解。
发起了问题 o 1 人关注 o 0 个回复 o 104 次浏览 o
o 来自相关话题
备注:由于实现本篇功能的需求,修改了地图数据的dlsearch.mxd,然后更新了地图服务,需要的在文章最后有提供最新的mxd以及源代码下载的
上一篇实现了demo的地图工具栏,本篇新增地图查询功能,包括属性查询和空间查询两大块,截图如下:
属性查询效果图:
空间查询效果图:
谈核心代码实现之前,我大概的讲一讲arcgis for js的地图查询方式,一
发起了问题 o 1 人关注 o 0 个回复 o 50 次浏览 o
o 来自相关话题
回复了问题 o 2 人关注 o 1 个回复 o 83 次浏览 o
o 来自相关话题
arcgis api for javascript 4.1在tomcat中本地部署,无法显示地图
回复了问题 o 3 人关注 o 2 个回复 o 116 次浏览 o
o 来自相关话题
假如我用百度地图作为底图,我想用arcgis在这个底图的基础上做几个不同的矢量图层,然后发布到server,用arcgis api调用。正常的话,需要配准啊什么的,但是百度地图要怎么配准啊,或者说用这些第三方地图,要怎么做这样的矢量图层来完成叠加呢?
回复了问题 o 2 人关注 o 1 个回复 o 60 次浏览 o
o 来自相关话题
使用代码:
var extent=map.getlayer(map.layerIds[0].
extent.spatialreference=map.spatialreference)
在地图初始化显示缓存切片时无法显示全图。
发起了问题 o 2 人关注 o 0 个回复 o 65 次浏览 o
o 来自相关话题
在使用JS API 研究打印功能时,使用动态服务可以进行地图的展示和打印功能,
但是在切换成切片缓存服务后,地图显示正常,但是打印后显示为空白。
发起了问题 o 1 人关注 o 0 个回复 o 91 次浏览 o
o 来自相关话题
官方Popup with related fields这个例子,想通过点击地图上的元素,显示关联表统计的数据,并显示关联表数据生成的统计图。
官方的例子:/ ... .html
代码只修改了官方定义关联表的字段,其他的没有改动,当然,数据由本地的server提供。
存在的问题是这样的,如果FeatureLayer设置了访问权限,
回复了问题 o 4 人关注 o 4 个回复 o 149 次浏览 o
o 来自相关话题
根据安装的说明,我替换了以下4个文件中的[HOSTNAME_AND_PATH_TO_JSAPI],替换为我的地址
\library\3.18\3.18\init.js
\library\3.18\3.18\dojo\dojo.js
中的替换为:
/api/library/3.18/3.18/
\library\3.18\3.18compact\init.js
发起了问题 o 1 人关注 o 0 个回复 o 89 次浏览 o
o 来自相关话题
目前想实现拖拽地图上的一个graphic,不知道有没有合适的解决方案
回复了问题 o 2 人关注 o 1 个回复 o 82 次浏览 o
o 来自相关话题
我对建立的镶嵌数据集发布本地的影像服务,通过ArcGISImageServiceLayer调用并展示在map中,没有问题。可是如何对镶嵌数据集中的部分数据进行展示?我现在尝试采用的ArcGISImageServiceLayer中的setDefinitionExpression(expression, doNotRefresh)方法进行操作,可是却没有成功,服务没有成功加载,代码如下:
回复了问题 o 2 人关注 o 1 个回复 o 260 次浏览 o
o 来自相关话题
众所周知,使用arcgis api for js实现地图的量算工具功能,无非是调用arcgisserver的Geometry服务(http://localhost:6080/arcgis/r ... erver)提供的Areas and Lengths以及Lengths,如图:
但是我这里提供另一种实现的思路,就是自己写算法来实现距离以及面积的量算,这样的好处是不依赖arcgis
【解决办法】:
API没有这个接口,需要自己实现这个逻辑。
思路:监听map的 extent change事件,如果新的extent超出了所需的范围,使用setextent把其设置为允许的范围之内
【解决办法】:
API没有这个接口,需要自己实现这个逻辑。
思路:监听map的 extent change事件,如果新的extent超出了所需的范围,使用setextent把其设置为允许的范围之内
Element layer 中间放textblock,然后给textblock设定上elementlayer的 extent attach property,这样,textblock 就限定在extent范围内,随着地图缩放而缩放了
Element layer 中间放textblock,然后给textblock设定上elementlayer的 extent attach property,这样,textblock 就限定在extent范围内,随着地图缩放而缩放了
【解决办法】:
js api没有这样的属性,需要自己根据map的 extent change 事件动态的调整element的位置,比较麻烦,这一块silverlight 有比较简单的解决方案,可以直接使用elementlayer对象来实现这个功能。
【解决办法】:
js api没有这样的属性,需要自己根据map的 extent change 事件动态的调整element的位置,比较麻烦,这一块silverlight 有比较简单的解决方案,可以直接使用elementlayer对象来实现这个功能。
【解决办法】:
在 /en/downloads/
可以下载到最新版本的离线api 以及文档(Download for hosting locally 下) 下载了API的zip包之后解压 找到int...
【解决办法】:
在 /en/downloads/
可以下载到最新版本的离线api 以及文档(Download for hosting locally 下) 下载了API的zip包之后解压 找到intall.htm 文件,用IE 或者其他浏览器打开,里面有详细的离线部署介绍: 以iis上的部署为例,把api中的内容拷贝到 iis 目录下:例如 C:\Inetpub\wwwroot\arcgis_js_api\library 修改其中的两个文件 “C:\Inetpub\wwwroot\arcgis_js_api\library\3.11\3.11\init.js ” 和 “C:\Inetpub\wwwroot\arcgis_js_api\library\3.11\3.11\dojo\dojo.js” ,用文本编辑器打开以上文件,在其中搜索“[HOSTNAME_AND_PATH_TO_JSAPI]” (无引号)把其替换为web 路径,例如本机的ip 是 192.168.1.100的话,就把两个文件中的“[HOSTNAME_AND_PATH_TO_JSAPI]” 全部替换为 192.168.1.00/arcgis_js_api/library/3.11/3.11/
(无引号) 注意本机部署的版本和相对路径可能与以上例子略有不同,根据实际情况自己做灵活修改。
【解决办法】:
1,参考以下代码片段:
var featureLayer = new fl(/arcgis/rest/services/Wildfire/FeatureServer...
【解决办法】:
1,参考以下代码片段:
var featureLayer = new fl(/arcgis/rest/services/Wildfire/FeatureServer/0);
doSomething = function () {
featureLayer.addAttachment(743325, document.getElementById(''form1''), function (e) {
console.log(e);
document.getElementById(''aaa'').click();
2,API 目前没有接口直接设置gdbversion,可以通过以下代码自己实现:
var fd = new FormData(); fd.append(''attachment'',document.getElementById(''fileinput'').files ); fd.append(''f'',''json''); fd.append(''gdbVersion'',''sde.xxx''); var xhr = new XMLHttpRequest(); xhr.open(''POST'',''/ArcGIS/rest/services/SanFrancisco/311Incidents/FeatureServer/0/818654/addAttachment''); xhr.send(fd);
3, 不能,浏览器安全限制,本地文件必须通过用户干预,代码是无法直接操作本地文件的。
【解决办法】:
如果前端通过 geometry service的方式,通过arcgis server的服务计算显然无法达到性能上的即时计算效果。
建议使用前端的geometry engine类进行前端的量测计算,可以计算 4326和 102100坐标系的长度面...
【解决办法】:
如果前端通过 geometry service的方式,通过arcgis server的服务计算显然无法达到性能上的即时计算效果。
建议使用前端的geometry engine类进行前端的量测计算,可以计算 4326和 102100坐标系的长度面积等简单几何计算,参考demo:
/javascript/jssamples/ge_geodesic_buffers.html
【解决办法】:
AMD 是 dojo新一代的加载模块的方法,和传统的dojo.require 加载方式相比,代码更加简洁,依赖项目有明确定义,并避免使用全局变量,模块ID可以映射到不同的路径,在浏览器中的支持更好,对cdn的支持更好。
具体参考文档:htt...
【解决办法】:
AMD 是 dojo新一代的加载模块的方法,和传统的dojo.require 加载方式相比,代码更加简洁,依赖项目有明确定义,并避免使用全局变量,模块ID可以映射到不同的路径,在浏览器中的支持更好,对cdn的支持更好。
具体参考文档:http://requirejs.org/docs/whyamd.html
/javascript/jshelp/inside_dojo_amd.html
【解决办法】:
参考以下代码:
var rightTableSource = new LayerDataSource();
rightTableSource.dataSource = new TableDataSource({
【解决办法】:
参考以下代码:
var rightTableSource = new LayerDataSource();
rightTableSource.dataSource = new TableDataSource({
workspaceId: [workspaceid],
dataSourceName: [tablename]
var leftTableSource = new LayerMapSource({
mapLayerId: 0
var joinDataSource = new JoinDataSource({
joinType: left-outer-join,
leftTableKey: Name,
rightTableKey: Name,
leftTableSource: leftTableSource,
rightTableSource: rightTableSource
var layerDataSource = new LayerDataSource();
layerDataSource.dataSource = joinDataS
var featureLayer = new FeatureLayer([urltomapservice]/dynamicLayer, {
id: featureLayer,
mode: FeatureLayer.MODE_ONDEMAND,
source: layerDataSource ,
outFields:
【解决办法】:
Javascript api 4.0 目前不支持这种前端符号,arcgis pro 发布的 scene service 可以做出和这个效果类似的符号,使用自带的 predefined symbol
js api 4.0 可以调用 scene ...
【解决办法】:
Javascript api 4.0 目前不支持这种前端符号,arcgis pro 发布的 scene service 可以做出和这个效果类似的符号,使用自带的 predefined symbol
js api 4.0 可以调用 scene service 和 web scene /javascript/beta/sample-code/layers-scenelayer/index.html
目前的scene service 只是展示,可以展示纹理以及一些简单的贴图。没有要素的查询编辑等功能。或者是二维要素使用三维符号。
【解决办法】:
当前js端实现buffer操作以及其他Geometry的操作,有两种方式:
方式一:在前端通过GeometryEngine
方式二:调用服务器端通过GeometryServices实现
其中GeometryEngine的buffer操作根...
【解决办法】:
当前js端实现buffer操作以及其他Geometry的操作,有两种方式:
方式一:在前端通过GeometryEngine
方式二:调用服务器端通过GeometryServices实现
其中GeometryEngine的buffer操作根据数据的参考类型不同,而需选用匹配的buffer()方法或者geodesicbuffer()方法。 两者区别为buffer()主要针对投影坐标而geodesicbuffer()针对地理坐标系。
geodesicbuffer()针对地理坐标系和web mercator的投影坐标进行buffer操作,当输入为地理坐标系是其仅支持wgs-1984(wkid:4326)的地理坐标系。其他的地理坐标系无法使用Geometryengine。此时需要选用方式二。即使用GeometryService.buffer()的方法在服务器端进行操作。
故失败的原因是选择的buffer的方式不正确。
经过测试,Esri已将其标记为bug,bug代号为BUG-(#BUG- Adding and removing graphics from a SceneView causes a memory leak when usin...
经过测试,Esri已将其标记为bug,bug代号为BUG-(#BUG- Adding and removing graphics from a SceneView causes a memory leak when using the 4.0 JavaScript API)。
由此bug给大家带来的不便我们深感抱歉。感谢徐先生检测并提出该问题。
【解决办法】:
这个功能将在4.1版本支持,目前API是不支持的 wrapAround180 (wrap features around the Dateline) Coming soon 4.1 参考链接: https://developers.arcgis...
【解决办法】:
这个功能将在4.1版本支持,目前API是不支持的 wrapAround180 (wrap features around the Dateline) Coming soon 4.1 参考链接: /javascript/latest/guide/functionality-matrix/index.html
回复了问题 o 2 人关注 o 1 个回复 o 68 次浏览 o
o 来自相关话题
例如我用arcgis api加载一张地图,然后用api画一个点线面这类的,那么要怎么保存到数据库中,下次再调用?一直没找到是这方面的资料,求解。
发起了问题 o 1 人关注 o 0 个回复 o 104 次浏览 o
o 来自相关话题
备注:由于实现本篇功能的需求,修改了地图数据的dlsearch.mxd,然后更新了地图服务,需要的在文章最后有提供最新的mxd以及源代码下载的
上一篇实现了demo的地图工具栏,本篇新增地图查询功能,包括属性查询和空间查询两大块,截图如下:
属性查询效果图:
空间查询效果图:
谈核心代码实现之前,我大概的讲一讲arcgis for js的地图查询方式,一
发起了问题 o 1 人关注 o 0 个回复 o 50 次浏览 o
o 来自相关话题
回复了问题 o 2 人关注 o 1 个回复 o 83 次浏览 o
o 来自相关话题
arcgis api for javascript 4.1在tomcat中本地部署,无法显示地图
回复了问题 o 3 人关注 o 2 个回复 o 116 次浏览 o
o 来自相关话题
假如我用百度地图作为底图,我想用arcgis在这个底图的基础上做几个不同的矢量图层,然后发布到server,用arcgis api调用。正常的话,需要配准啊什么的,但是百度地图要怎么配准啊,或者说用这些第三方地图,要怎么做这样的矢量图层来完成叠加呢?
回复了问题 o 2 人关注 o 1 个回复 o 60 次浏览 o
o 来自相关话题
使用代码:
var extent=map.getlayer(map.layerIds[0].
extent.spatialreference=map.spatialreference)
在地图初始化显示缓存切片时无法显示全图。
发起了问题 o 2 人关注 o 0 个回复 o 65 次浏览 o
o 来自相关话题
在使用JS API 研究打印功能时,使用动态服务可以进行地图的展示和打印功能,
但是在切换成切片缓存服务后,地图显示正常,但是打印后显示为空白。
发起了问题 o 1 人关注 o 0 个回复 o 91 次浏览 o
o 来自相关话题
官方Popup with related fields这个例子,想通过点击地图上的元素,显示关联表统计的数据,并显示关联表数据生成的统计图。
官方的例子:/ ... .html
代码只修改了官方定义关联表的字段,其他的没有改动,当然,数据由本地的server提供。
存在的问题是这样的,如果FeatureLayer设置了访问权限,
回复了问题 o 4 人关注 o 4 个回复 o 149 次浏览 o
o 来自相关话题
根据安装的说明,我替换了以下4个文件中的[HOSTNAME_AND_PATH_TO_JSAPI],替换为我的地址
\library\3.18\3.18\init.js
\library\3.18\3.18\dojo\dojo.js
中的替换为:
/api/library/3.18/3.18/
\library\3.18\3.18compact\init.js
发起了问题 o 1 人关注 o 0 个回复 o 89 次浏览 o
o 来自相关话题
目前想实现拖拽地图上的一个graphic,不知道有没有合适的解决方案
回复了问题 o 2 人关注 o 1 个回复 o 82 次浏览 o
o 来自相关话题
我对建立的镶嵌数据集发布本地的影像服务,通过ArcGISImageServiceLayer调用并展示在map中,没有问题。可是如何对镶嵌数据集中的部分数据进行展示?我现在尝试采用的ArcGISImageServiceLayer中的setDefinitionExpression(expression, doNotRefresh)方法进行操作,可是却没有成功,服务没有成功加载,代码如下:
回复了问题 o 2 人关注 o 1 个回复 o 260 次浏览 o
o 来自相关话题
众所周知,使用arcgis api for js实现地图的量算工具功能,无非是调用arcgisserver的Geometry服务(http://localhost:6080/arcgis/r ... erver)提供的Areas and Lengths以及Lengths,如图:
但是我这里提供另一种实现的思路,就是自己写算法来实现距离以及面积的量算,这样的好处是不依赖arcgis
发表了文章 o 0 个评论 o 111 次浏览 o
o 来自相关话题
本文讲述的是讲ArcGIS JS API离线部署到本地,部署方法可参考本博另一篇文章,也可网上搜索大量的参考案例。
本文的主要环境因素是:ArcGIS Server 10.1,Windows Server 2008,ArcGIS API for JavaScript 3.6。
首先是界面不正常,放大和缩小按钮变成简单的“+”和“-”,而且点击后不响应;
其次是服务切片
发表了文章 o 0 个评论 o 123 次浏览 o
o 来自相关话题
一个ArcGIS Javascript Viewer for JavaScript Widget是一组可以共享、迁移及部署到JavaScript View程序中的的文本文件。通常,一个程序员如果要开发一个或者一组Widgets会将他们封闭成一在一个Dojo模型中,如下图所示:
一个Widget可以是一个JavaScript文件一样简单。上述结构表示一个完整的
发表了文章 o 0 个评论 o 71 次浏览 o
o 来自相关话题
大家都知道在10.1之前的版本在开发的时候需要使用跨域部署文件crossdomain.xml文件,在10.1中该文件不需要单独拷贝到IIS根目录或者是java版本的weboutput目录,在server系统安装的时候该文件已经存在于目录&serverinstalldir&\Server\framework\runtime\tomcat\contexts\rootapp\下。
发表了文章 o 0 个评论 o 40 次浏览 o
o 来自相关话题
1、问题说明
在使用ArcGIS for Service时经常会遇到一个问题,那就是我们需要对已经发布的服务进行预览,预览时点击对应服务,选择View in中的ArcGIS JavaScript就可在浏览器中实现对地图的预览工作。
在点击该操作时会分为两种情况
1)、网络通畅,点击访问没有问题。正常显示地图。
2)、无网络(内网环境),点击后报错,无法访问地图。
究其根本原因: Se
发表了文章 o 0 个评论 o 210 次浏览 o
o 来自相关话题
Esri发布了3.13版本的ArcGIS API for JavaScript,它提供了许多新特性和功能的增强。
多数据源搜索工具
首先,我们来体验下多数据源的搜索工具。在新版本中,搜索工具不仅支持原有地理编码器针对地理位置的检索,同时新增地图服务和要素服务的检索。一个简单的接口,便可以可实现多数据源的搜索。检索结果会根据不同的数据来源,显示在列表中。通过简单的代码,我们可以自定义工具的数据
发表了文章 o 0 个评论 o 1684 次浏览 o
o 来自相关话题
ArcGIS API for JavaScript的总体介绍
作为ArcGIS平台的一部分,ArcGIS API for JavaScript使得开发者能够丰富的地理web应用程序。本次课程,将在ArcGIS 平台的背景下学习ArcGIS API for JavaScript内容。将了解平台提供的资源和解决方案,以及利用他们开发自己的地理web应用程序。
· ArcGIS 平台
发表了文章 o 4 个评论 o 1326 次浏览 o
o 来自相关话题
Map基本操作
ArcGIS API for JavaScript 能够给地图添加不同的图层,包含ArcGIS for Server的地图服务图层,graphics 图层和自定义图层。除此之外使用ArcGIS Online或者Portal for ArcGIS创造一个webmap是一个用来分享包含图层,符号和弹出窗口,文件数据以及其他元数据资源的好方式。
地图提供了许多的方法,属性和事件用来支持
发表了文章 o 0 个评论 o 122 次浏览 o
o 来自相关话题
ArcGIS WebApp Builder 是针对开发人员的,用于快速构建基于HTML5/Javascript 技术的美观的 Web应用的一个工具。用过Flex版本的AppBuilder应该很清楚它的特点:快速、高效、灵活、美观,GIS开发人员的利器。
以下是截图
接下来我们说一说配置部署过程
1、ArcGIS WebApp Builder服务器端基于node.js。所以在安装前需要安装node
发表了文章 o 1 个评论 o 158 次浏览 o
o 来自相关话题
在研究ArcGIS API for JavaScript时会遇到这样的问题,比如我们在做缓冲区分析时,用分析的范围作为空间查询query的参数,在执行结果中总是会看到“esri.config.defaults.io.proxyUrl 尚未设置”错误,但是我们手动绘制一个简单多边形作为输入参数则不会出现上述错误。
问题原因:
一般使用框选的时候对query.geometry,
发表了文章 o 0 个评论 o 61 次浏览 o
o 来自相关话题
在用ArcGIS Server JavaScript开发中,经常遇到和其它平台对接或者调用SOE时,需要用js访问rest页面获得页面值,下面示例代码:
(注:此处是一个非常简单的示例,根据arcgis server页面的query操作,设置where=&1=1&后构造的url,然后获取要素的示例)&!DOCTYPE html&
获得 11 次赞同, 1 次感谢
获得 5 次赞同, 2 次感谢
获得 2 次赞同, 0 次感谢
获得 2 次赞同, 0 次感谢
获得 1 次赞同, 0 次感谢}

我要回帖

更多关于 ie8不支持javascript 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信