So I have been trying this evening to have a more "zoomed out" view when selecting results from a query. I believe I have located the relevant code in my apps folder under WebappBuilderforArcGIS>server>apps>[myapp]>widgets>Query>SingleQueryResult.js
I'm particularly looking at the polylines section of code as I am working with some Roads data atm, although learning the general method for other geometry types would be great too.
I've tried a few simple things including jacking up the extend.expand(10) which didn't seem to make a difference. I was able to break the results behavior of zooming to extent, so I think I am working on the right code block, but just unclear the best way to proceed.
Thanks in advance for any assistance!
this._selectResultTr(tr);html.addClass(tr, 'jimu-state-active');var feature = tr.feature;var geometry = feature.geometry;if (geometry) {var geoType = geometry.type;var centerPoint, extent;if (geoType === 'point') {centerPoint = geometry;} else if (geoType === 'multipoint') {if (geometry.points.length === 1) {centerPoint = geometry.getPoint(0);} else if (geometry.points.length > 1) {centerPoint = geometry.getPoint(0);}} else if (geoType === 'polyline') {extent = geometry.getExtent();extent = extent.expand(1.4);centerPoint = extent.getCenter();} else if (geoType === 'polygon') {extent = geometry.getExtent();extent = extent.expand(1.4);centerPoint = extent.getCenter();} else if (geoType === 'extent') {extent = geometry;extent = extent.expand(1.4);centerPoint = extent.getCenter();}
Solved! Go to Solution.
Arthur,
Yes you seem to be working in the correct file and No you do not have to reload WAB/Node each time you make a change you just need to refresh the browser. The issue is the code you have changed is not used in the zooming.
This is the line that controls zooming:
jimuUtils.zoomToFeatureSet(this.map, featureSet);
What you need to do is add a third property to this call. The zoomfactor.
jimuUtils.zoomToFeatureSet(this.map, featureSet, 1.8);
Just a follow up question, and I apologize, as I am sure the answer is somewhere, but when I have webapp builder for developer running through node.js, and I make edits to the code of a file and save it, do I have to relaunch the node.js server or can I just refresh or re-open the app that I am currently working on?
Arthur,
Yes you seem to be working in the correct file and No you do not have to reload WAB/Node each time you make a change you just need to refresh the browser. The issue is the code you have changed is not used in the zooming.
This is the line that controls zooming:
jimuUtils.zoomToFeatureSet(this.map, featureSet);
What you need to do is add a third property to this call. The zoomfactor.
jimuUtils.zoomToFeatureSet(this.map, featureSet, 1.8);
Thank you Robert, worked like a charm. You the hero that Gotham/ArcGIS community needs..the batman! But seriously I never would have figured this out... you are a life saver.
Glad to help.
Don't forget to mark this question as answered by clicking on the "Mark Correct" link on the reply that answered your question.
Hi Robert,
I'm trying to change this third factor to zoom in result (when I do a query and get one point as a result I want to see this point more zoomed). Is this function still works?
BR RobertP
Looking at 2.20 the code looks the same so yes it should still work.
So what values this parameter takes? 0-100? Which value is closer zoom and which is further?
@RobertPiatek 1 is 100% 1.8 is 180%
That's strange because when I put 3 or 14 I haven't seen a difference.
and to make sure that I'm describing it correctly
I want to set the closer zoom to the searched point after choosing it from the result list on the left. Without having to click "Zoom in" in a popup window.