मैं वोरोनोई कोशिकाओं (https://github.com/gorhill/Javascript-Voronoi) की गणना करने के लिए फॉर्च्यून के एल्गोरिदम के जावास्क्रिप्ट कार्यान्वयन का उपयोग कर रहा हूं। गणना करने के लिए मेरी साइट मानचित्र पर बिंदु हैं (इसलिए (lat,lng)
)। मैंने पहली बार प्रक्षेपण (lat,lng) -> (x,y)
बनाया, फिर मैंने voronoi कोशिकाओं की गणना की और आधे किनारों के प्रक्षेपण को दूसरी तरफ बनाया।
यह ठीक काम करता है, मैं परिणाम पुस्तिका का उपयोग करके परिणाम प्रदर्शित करता हूं लेकिन मुझे एक और चीज करने की आवश्यकता है।आसन्न बहुभुजों को कैसे विलय करें
प्रत्येक साइट मैं शुरू में गणना एक आईडी निर्भर करता है, मैं आईडी के आधार पर voronoi कोशिकाओं पुन: वर्गीकृत और मैं अंत में, इस तरह लग रही एक मानक डेटा संरचना के साथ एक आईडी के लिए:
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": {
"type": "Polygon",
"coordinates": [[
[9.994812, 53.549487],
[10.046997, 53.598209],
[10.117721, 53.531737],
[9.994812, 53.549487]
]]
}
}, {
"type": "Feature",
"geometry": {
"type": "Polygon",
"coordinates": [[
[10.000991, 53.50418],
[10.03807, 53.562539],
[9.926834, 53.551731],
[10.000991, 53.50418]
]]
}
}
]
};
बहुभुज का एक सेट (किसी दिए गए आईडी के लिए voronoi कोशिकाओं का आधा किनारा बनाया)।
मैं आईडी के आधार पर उन बहुभुज मर्ज करने के लिए की जरूरत है, मैं turf.merge()
का उपयोग करने का इरादा है, लेकिन मैं टोपोलॉजी त्रुटियों
turf.min.js:13 Uncaught TopologyError: side location conflict
इस पोस्ट (http://lists.refractions.net/pipermail/jts-devel/2009-March/002939.html) के आधार पर, मैं 10 से (lat,lng)
जोड़ी पूर्णांक बनाना की कोशिश की है है^-14 से 10^-7 लेकिन यह वास्तव में काम नहीं किया था। कंकों की तलाश करने और उन्हें हटाने की कोशिश करने से पहले, मैंने कुछ डेटा नमूना मुद्रित किया और मुझे पता है कि अगर मैं फॉर्च्यून के एल्गोरिदम से अच्छा डेटा इस्तेमाल करता हूं तो मुझे खुद से पूछना है। जब मैं सभी आईडी के लिए सभी बहुभुज प्रदर्शित करते हैं, मैं सही चित्र है, लेकिन जब मैं एक आईडी के लिए सभी बहुभुज या कुछ बहुभुज एक आईडी के लिए मैं अधूरा चित्र के साथ खत्म प्रदर्शित:
का हिस्सा पूर्ण आरेख
एक आईडी के लिएआरेख का एक हिस्सा
किसी दिए गए आईडी के लिए दो "बहुभुज"
क्या किसी को यह पता है कि कम से कम एक सामान्य वर्टेक्स साझा करने वाले बहुभुज को कैसे विलय करना है? और टोपोलॉजी त्रुटि क्यों है?
संपादित करें: बहुभुज "अपूर्ण" (मैं पॉलीलाइन उपयोग कर रहा था) नहीं कर रहे हैं
मैं भी एक आसान नमूना पर करने की कोशिश की:
और फिर भी मिल गया त्रुटि:
Uncaught TopologyError: side location conflict [ (44.8220601, -0.5869532) ]
तो यह कंक
मैं इस पुस्तकालय का उपयोग किया है, लेकिन मैं किसी भी कोशिकाओं विलय करने के लिए दुर्भाग्य से, ताकि आप मदद नहीं कर सकता था नहीं था ... आप पोस्ट करने का प्रयास करना चाहिए:
यहाँ उनके सफल विलय दिखा एक बेला है यदि आप इसे एक बहुत ही साधारण मामले में पुन: पेश करने का प्रबंधन करते हैं तो यह प्रश्न जिथब रेपो पर एक बग के रूप में है। – deKajoo
धन्यवाद, मैंने जिथब रेपो पर एक बग बनाया है। मुझे turf.union() – kwn
के साथ एक ही समस्या का सामना करना पड़ता है क्या आप whit d3.js को आजमाते हैं? https://github.com/mbostock/d3/wiki/Geometry – cbertelegni