<\/P>
Vrij recent was er een coole blogserie over het gebruik van de GeometryEngine<\/A> in de ArcGIS JS API. Als je die nog niet hebt gelezen, raad ik je sterk aan dat te doen.<\/P><\/P>Maar voordat we de GeometryEngine hadden, moesten we dingen op de ouderwetse manier doen<\/EM>, handmatig geometrieën zelf controleren.<\/P><\/P>Ik heb dit gehaald uit een use case die ik vond in een oude repo van mij. De use case is dat ik een punt heb, en voordat ik iets met dit punt kan doen, moet ik weten of het punt in andere features is opgenomen.<\/P><\/P>Bijvoorbeeld, ik heb data die realtime in mijn app wordt gestreamd, zeg serviceverzoeken, maar ik ben alleen geïnteresseerd in de verzoeken die zich binnen vooraf gedefinieerde servicegebieden bevinden.<\/P><\/P>Een eenvoudige utility zou er ongeveer zo uit kunnen zien:<\/P><\/P>define([], function () { var geomUtil = {}; geomUtil.graphicsContain = function (graphics, pt) { var len = graphics.length; while (len--) { var graphic = graphics[len]; if (graphic.geometry.contains && graphic.geometry.contains(pt)) { return pt; } } return null; }; return geomUtil;});<\/PRE><\/P>Dus in feite doorloop je de graphics en zodra je een graphic vindt die het punt bevat, geef je dat terug. Dit bespaart wat tijd omdat het niet alle graphics hoeft te doorlopen om klaar te zijn<\/EM>.<\/P><\/P>Je zou dit zelfs kunnen aanpassen door de graphic in de graphics-array te vinden die het punt bevat<\/EM> en in plaats van het punt terug te geven, de graphic terug te geven<\/EM>. Om het goed te doen, zou je echter alle graphics moeten doorlopen, wat afhankelijk van je applicatie duur kan zijn.<\/P><\/P>Hier is een voorbeeld van hoe dit er in actie uit zou kunnen zien:<\/P>JS Bin - Collaborative JavaScript Debugging<\/A><\/P>Om het te testen, teken wat rechthoeken en polygonen op de kaart en probeer dan punten toe te voegen. Je zou alleen punten binnen de polygonen moeten kunnen toevoegen.<\/P><\/P>Je kunt zelfs behoorlijk creatief worden en beginnen met het filteren van geometrieën die je in de GeometryEngine kunt gooien en nu<\/EM><\/STRONG> heb je een feestje!<\/P><\/P>Voor meer geodev tips en trucs, <A href="http:\/\/odoe.net\/blog\/\
Maar voordat we de GeometryEngine hadden, moesten we dingen op de ouderwetse manier doen<\/EM>, handmatig geometrieën zelf controleren.<\/P><\/P>Ik heb dit gehaald uit een use case die ik vond in een oude repo van mij. De use case is dat ik een punt heb, en voordat ik iets met dit punt kan doen, moet ik weten of het punt in andere features is opgenomen.<\/P><\/P>Bijvoorbeeld, ik heb data die realtime in mijn app wordt gestreamd, zeg serviceverzoeken, maar ik ben alleen geïnteresseerd in de verzoeken die zich binnen vooraf gedefinieerde servicegebieden bevinden.<\/P><\/P>Een eenvoudige utility zou er ongeveer zo uit kunnen zien:<\/P><\/P>define([], function () { var geomUtil = {}; geomUtil.graphicsContain = function (graphics, pt) { var len = graphics.length; while (len--) { var graphic = graphics[len]; if (graphic.geometry.contains && graphic.geometry.contains(pt)) { return pt; } } return null; }; return geomUtil;});<\/PRE><\/P>Dus in feite doorloop je de graphics en zodra je een graphic vindt die het punt bevat, geef je dat terug. Dit bespaart wat tijd omdat het niet alle graphics hoeft te doorlopen om klaar te zijn<\/EM>.<\/P><\/P>Je zou dit zelfs kunnen aanpassen door de graphic in de graphics-array te vinden die het punt bevat<\/EM> en in plaats van het punt terug te geven, de graphic terug te geven<\/EM>. Om het goed te doen, zou je echter alle graphics moeten doorlopen, wat afhankelijk van je applicatie duur kan zijn.<\/P><\/P>Hier is een voorbeeld van hoe dit er in actie uit zou kunnen zien:<\/P>
Om het te testen, teken wat rechthoeken en polygonen op de kaart en probeer dan punten toe te voegen. Je zou alleen punten binnen de polygonen moeten kunnen toevoegen.<\/P>
Je kunt zelfs behoorlijk creatief worden en beginnen met het filteren van geometrieën die je in de GeometryEngine kunt gooien en nu<\/EM><\/STRONG> heb je een feestje!<\/P><\/P>Voor meer geodev tips en trucs, <A href="http:\/\/odoe.net\/blog\/\
Aangemelde leden kunnen berichten plaatsen, updates volgen en meer. Nieuw hier? Registreer een gratis account.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.