लगभग एक हफ्ते पहले, मैं एक समस्या में भाग गया: एक कस्टम Google संचालित मानचित्र पर, मेरे बहुभुज दिखाई नहीं देंगे, जबकि एक ही निर्देशांक के लिए मार्कर पूरी तरह से ठीक हैं। Google मानचित्र API के साथ मेरे प्रयासों के बावजूद, ऐसा लगता है कि मुझे क्यों नहीं मिल रहा है।कुछ लैट्लिंग का उपयोग Google मानचित्र पर मार्कर लगाने के लिए कैसे किया जा सकता है, लेकिन पॉलीगॉन नहीं खींचा जा सकता है?
Here is a link to a screenshot of the map. बैंगनी तीर और नंबर मेरे अलावा रहे हैं, वे बताते हैं:
google.maps.Marker
मैं अपने "क्षेत्र" के किनारों पर लगा सके।google.maps.Polygon
कोड द्वारा उत्पन्न आर्टिफैक्ट। यह अपेक्षित के रूप में लाल है, लेकिन पूरी तरह से जगह से बाहर और अजीब फ्लैट।var regionData = tecMap.regions[r]; var regionMapMarkers = new google.maps.MVCArray(); for (c in regionData.coords) { var point = projection.worldToMap(regionData.coords[c]); debugRegionPoints.push(point); var thisLatLng = projection.fromPointToLatLng(point); debugRegionLatLngs.push(thisLatLng); regionMapMarkers.push(thisLatLng); } regionMapMarkers.forEach(function(latLng, m){ var marker = new google.maps.Marker({ position: latLng, map: map, title: '', optimized: false }); regionCorners.push(marker); }); var paths = new google.maps.MVCArray(); paths.push(regionMapMarkers); var region = new google.maps.Polygon({ fillColor: "#FF0000", fillOpacity: 0.35, map: map, paths: paths, strokeColor: "#FF0000", strokeOpacity: 0.8, strokeWeight: 2 }); regionPolys.push(region);
आप सरणियों की सरणी के बारे में सोच रहे हैं, यह Google Maps Javascript API के समान ही है:
यहाँ कोड का हिस्सा है जहां मार्करों और बहुभुज उत्पन्न कर रहे हैं है।
यदि आप मानचित्र और संबंधित स्क्रिप्ट पर एक नज़र रखना चाहते हैं, तो आप find it here कर सकते हैं। कोड स्निपेट Scripts/tectonicus.js
में है, लाइन पर शुरू 659.
[संपादित करें] कुछ डिबगिंग जानकारी:
यह एक प्रतिपादन समस्या लगती है, एक एक "गणना" नहीं। फ़ायरबग कंसोल से, नक्शे में मैं जुड़ा हुआ है, दोनों
regionPolys[0].getPath().getArray();
और
for (i in regionCorners) {console.log(regionCorners[i].getPosition())};
वापस आ जाएगी
P { Na=0.2, Oa=-22.5249097921875}
P { Na=-0.21702715474330336, Oa=-32.7277467}
P { Na=0.19466306397879407, Oa=-37.51230686484375}
P { Na=0.12889785332031245, Oa=-49.04594858671875}
अगर मैं सही हूँ, इसका मतलब है कि वे एक ही निर्देशांक है, जो कोड के बराबर है।
[संपादित करें] नई प्रगति!
ऐसा लगता है कि एक कस्टम प्रोजेक्शन से निपटने के दौरान वैक्टरों ने समस्याएं प्रस्तुत की हैं, जैसे कि इस आइसोमेट्रिक माइनक्राफ्ट मानचित्र को प्रदर्शित करने के लिए उपयोग किया जाता है। (Tectonicus साथ जनरेट किया गया)
पिछले टिप्पणियों के बाद, मैं दो नए डिबग सरणी, debugRegionLatLngs
और debugRegionPoints
ऊपर लिंक को लाइव कोड को जोड़ने कर रहा हूँ। उपरोक्त कोड अपडेट किया गया है ताकि आप देख सकें कि उनमें क्या शामिल है।
[Edit3] प्रोजेक्शन और मेरा साथ
पार BicycleDude के अनुसंधान का समन्वय करता है, यह अब लगभग निश्चित है कि यह है कि बहुभुज जहाजों कस्टम प्रक्षेपण है। वास्तव में, a possibly related bug in Google Maps' API है।
यह प्रक्षेपण का उपयोग किया जाता है क्योंकि Minecraft नक्शे लगभग अनंत हो सकते हैं, और फिर भी एक जीएमएपी का उपयोग करना है, जो 360 डिग्री रेखांश के बाद घूमता है।यह भी तथ्य है कि ingame निर्देशांक एक isometric तरीके से गाया जाता है, जबकि gmaps मर्केटर प्रक्षेपण की तरह कुछ और उम्मीद करता है।
मैंने प्रक्षेपण को थोड़ा सा करने की कोशिश की, लेकिन अब तक कोई दिलचस्प परिणाम नहीं था।
है मेरा मानना है कि आप बहुभुज गुण में 'path' उपयोग कर रहे हैं, जबकि वास्तव में इस' होना चाहिए paths' अन्यथा, यह कहीं भी लाइव कोड देखने में मदद करेगा। चीयर्स, एंड्रेस – andresf
मै मैप और संबंधित कोड की एक प्रति अपलोड करने के लिए कुछ जगह फहराया। लिंक सवाल में है। यदि कोई परीक्षण है तो आप मुझे दौड़ना चाहते हैं, कृपया पूछें। :) –
क्या आप थोड़ा सा नमूना पोस्ट कर सकते हैं जो इसे पुन: उत्पन्न करता है, या कम से कम हमें अपने नमूने में Google मानचित्र कोड पर इंगित करता है? मैं सभी जावास्क्रिप्ट फाइलों में खो रहा हूं ... – bamnet