ፖሊጎኖች በካርታው ላይ ግምታዊውን የመሬት ስፋት ለመወከል ጥሩ መንገድ ናቸው ፣ እና እርስዎ የገለፁትን ባለ ብዙ ጎን አካባቢ ማወቅ ብዙውን ጊዜ ጠቃሚ ነው። ይህ በ OpenLayers 3 ውስጥ ይቻላል። ኃይለኛ የጃቫስክሪፕት ካርታ መሣሪያ።
ይህ ጽሑፍ ባለብዙ ጎንጎልን በማከል ይመራዎታል ፣ ከዚያ አከባቢውን በመጠቀም ሉል በመጠቀም ይሰላል።
ይህንን ጽሑፍ ለመከተል በድረ -ገጽ ውስጥ የሚሰራ የ OpenLayers ካርታ እንዲኖርዎት እባክዎ ልብ ይበሉ። አንድ ከሌለዎት OpenLayers 3 ን በመጠቀም ካርታ እንዴት እንደሚሠሩ።
ደረጃዎች
ደረጃ 1. ባለ ብዙ ጎን ባህሪን ይፍጠሩ።
የ polygon ግንበኛ ተግባር የተቀናጁ ድርድሮች ድርድር ይፈልጋል ፣ በኋላ እንዲጠቀሙበት ይህንን ድርድር በመጀመሪያ በተለዋዋጭ ይግለጹ። በቀላሉ የሚከተለውን የኮድ መስመር ወደ እርስዎ ይቅዱ
ንጥረ ነገር
var መጋጠሚያዎች =
ደረጃ 2. ባህሪውን ወደ ቬክተር ንብርብር ያክሉ።
ባለ ብዙ ጎኖቹን ወደ ካርታው ለማከል ወደ ምንጭ ማከል አለብዎት ፣ ወደ ቬክተር ንብርብር የሚያክሉት ፣ ከዚያ ወደ ካርታው ማከል የሚችሉት
var vector_layer = new ol.layer. Vector ({source: new ol.source. Vector ({features: [polygon_feature]})}) map.addLayer (vector_layer);
ደረጃ 3. መጋጠሚያዎችን ለመጠቀም የባህሪውን ጂኦሜትሪ ይለውጡ።
var current_projection = new ol.proj. Projection ({code: "EPSG: 4326"}); var new_projection = tile_layer.getSource (). getProjection (); polygon_feature.getGeometry ()። መለወጥ (የአሁኑ_ፕሮጀክት ፣ አዲስ_ፕሮጀክት);
ደረጃ 4. ስሌቱን ለማከናወን ሉል ይፍጠሩ።
ሉሉ የምድር መጠን መሆን አለበት (6.3 ሜትር ሜትር ራዲየስ ሊኖረው ይገባል)። በቴክኒካዊ ፣ ሉሉ ራዲየስ አለው ከ WGS84 ellipsoid ከፊል-ዋና ዘንግ ጋር።
var sphere = new ol. Sphere (6378137);
ደረጃ 5. አካባቢውን (geodesicArea ()) ዘዴን ለማስላት ሉል ይጠቀሙ።
ዘዴው በካሬ ሜትር ዋጋን ስለሚሰጥ ፣ ካሬ ኪሎሜትር ለማግኘት በሚሊዮን ይከፋፍሉ።
var area_m = sphere.geodesicArea (መጋጠሚያዎች); var area_km = area_m / 1000/1000; console.log ('አካባቢ ፦' ፣ area_km ፣ 'km²') ፤ // ኮንሶል - አካባቢ 2317133.7166773956 ኪ.ሜ
ደረጃ 6. የአከባቢው መልስ ትርጉም ያለው መሆኑን ያረጋግጡ።
2 ፣ 381 ፣ 741 ኪ.ሜ (ከዊኪፔዲያ) ስፋት ካለው አልጄሪያ ጋር በግምት ተመሳሳይ መጠን ያለው ስለሚመስል ትክክል መሆኑን እናውቃለን።