<\/P>
Docela nedávno byla skvělá blogová série o používání GeometryEngine<\/A> v ArcGIS JS API. Pokud jste ji ještě nečetli, rozhodně to doporučuji.<\/P><\/P>Ale před tím, než jsme měli GeometryEngine, museli jsme věci dělat staromódním způsobem<\/EM>, ručně kontrolovat geometrie sami.<\/P><\/P>Toto jsem vytáhl z případu použití, který jsem našel ve svém starém repozitáři. Případ použití je takový, že mám bod a než s tímto bodem mohu cokoli udělat, potřebuji vědět, jestli je bod obsažen v nějakých jiných prvcích.<\/P><\/P>Například mám data streamovaná v reálném čase do mé aplikace, řekněme servisní požadavky, ale zajímají mě pouze ty, které jsou v nějakých předdefinovaných servisních oblastech.<\/P><\/P>Jednoduchý nástroj by mohl vypadat nějak takto:<\/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>Takže v podstatě procházíte grafiky a jakmile najdete grafiku, která obsahuje bod, vrátíte ho. To ušetří čas, protože není potřeba procházet všechny grafiky až do konce<\/EM>.<\/P><\/P>Můžete to dokonce trochu upravit tak, že najdete grafiku v poli grafik, která obsahuje bod<\/EM>, a místo vrácení bodu vrátíte grafiku<\/EM>. Aby to bylo správně, museli byste ale projít všechny grafiky, což může být podle vaší aplikace nákladné.<\/P><\/P>Zde je ukázka toho, jak by to mohlo vypadat v praxi:<\/P>JS Bin - Collaborative JavaScript Debugging<\/A><\/P>Pro otestování nakreslete na mapu několik obdélníků a polygonů a pak zkuste přidat body. Měli byste být schopni přidávat body pouze uvnitř polygonů.<\/P><\/P>Můžete být dokonce dost kreativní a začít filtrovat geometrie, které můžete hodit do GeometryEngine a teď<\/EM><\/STRONG> máte párty!<\/P><\/P>Pro více tipů a triků z geodev oblasti <A href="http:\/\/odoe.net\/blog\/\
Ale před tím, než jsme měli GeometryEngine, museli jsme věci dělat staromódním způsobem<\/EM>, ručně kontrolovat geometrie sami.<\/P><\/P>Toto jsem vytáhl z případu použití, který jsem našel ve svém starém repozitáři. Případ použití je takový, že mám bod a než s tímto bodem mohu cokoli udělat, potřebuji vědět, jestli je bod obsažen v nějakých jiných prvcích.<\/P><\/P>Například mám data streamovaná v reálném čase do mé aplikace, řekněme servisní požadavky, ale zajímají mě pouze ty, které jsou v nějakých předdefinovaných servisních oblastech.<\/P><\/P>Jednoduchý nástroj by mohl vypadat nějak takto:<\/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>Takže v podstatě procházíte grafiky a jakmile najdete grafiku, která obsahuje bod, vrátíte ho. To ušetří čas, protože není potřeba procházet všechny grafiky až do konce<\/EM>.<\/P><\/P>Můžete to dokonce trochu upravit tak, že najdete grafiku v poli grafik, která obsahuje bod<\/EM>, a místo vrácení bodu vrátíte grafiku<\/EM>. Aby to bylo správně, museli byste ale projít všechny grafiky, což může být podle vaší aplikace nákladné.<\/P><\/P>Zde je ukázka toho, jak by to mohlo vypadat v praxi:<\/P>
Pro otestování nakreslete na mapu několik obdélníků a polygonů a pak zkuste přidat body. Měli byste být schopni přidávat body pouze uvnitř polygonů.<\/P>
Můžete být dokonce dost kreativní a začít filtrovat geometrie, které můžete hodit do GeometryEngine a teď<\/EM><\/STRONG> máte párty!<\/P><\/P>Pro více tipů a triků z geodev oblasti <A href="http:\/\/odoe.net\/blog\/\
Přihlášení členové mohou přispívat, sledovat aktualizace a další. Nový zde? Zaregistrujte si bezplatný účet.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.