আমি সানক্যালাক ফলাফলের ভিত্তিতে এবং জিওজসন ব্যবহার করে একটি মানচিত্র বাক্সের মানচিত্রে আঁকতে চেষ্টা করছি। প্রথমে আমি 2 টি ফাংশন তৈরির চেষ্টা করেছি, প্রতিটি লাইনে আমি একটি করে আঁকার চেষ্টা করছিলাম। কিন্তু যখন আমি এটি করেছি, এটি কেবলমাত্র শেষ ফাংশনটি প্রদর্শন করবে। সুতরাং আমি উপসংহারে পৌঁছেছি যে স্তরগুলি কীভাবে পরিচালনা করতে হয় তা আমি জানি না, কারণ আমি ম্যাপবক্স এবং লিফলেট সিনট্যাক্সে নতুন।
লিফলেট উদাহরণ ব্যবহার করে, আমি এই কোডটিতে পেয়েছি:
অবশ্যই JAVASCRIPT
function drawOnMap(sAz){
//sun calculation stuff, doesn't matter for the problem
var lt = parseFloat(document.getElementById('lat').value);
var ln = parseFloat(document.getElementById('long').value);
var R = 6371000; //Earth's radius
var d = 10000* Math.sin(1); // Distance
var brngSR = deg2rad(sAz);
var ltr = deg2rad(lt);
var latSR = rad2deg(Math.asin( Math.sin(ltr)*Math.cos(d/R) + Math.cos(ltr)*Math.sin(d/R)*Math.cos(brngSR) ));
var lonSR = ln + rad2deg(Math.atan2(Math.sin(brngSR)*Math.sin(d/R)*Math.cos(ltr), Math.cos(d/R)-Math.sin(ltr)*Math.sin(latSR)));
var out3 = calculateNOAA(lat, lon, timeZone, year, month, day, out[6], out[7], out[8]);
var sEl2 = out3[11];
var sAz2 = out3[9];
var brngSS = deg2rad(sAz2);
var latSS = rad2deg(Math.asin( Math.sin(ltr)*Math.cos(d/R) + Math.cos(ltr)*Math.sin(d/R)*Math.cos(brngSS) ));
var lonSS = ln + rad2deg(Math.atan2(Math.sin(brngSS)*Math.sin(d/R)*Math.cos(ltr), Math.cos(d/R)-Math.sin(ltr)*Math.sin(latSS)));
//GeoJSON to display 2 lines
var sunPos = [
{
"type": "Feature",
"geometry": {
"type": "LineString",
"coordinates": [
[ln, lt],
[lonSR, latSR]
]
},
"properties": {"id": "sunrise"}
},
{
"type": "Feature",
"geometry": {
"type": "LineString",
"coordinates": [
[ln, lt],
[lonSS, latSS]
]
},
"properties": {"id": "sunset"}
}
];
//setting map to current position
mapboxgl.accessToken = 'pk.<mytoken>'; //I'm using a real token
var map = new mapboxgl.Map({
container: 'map',
style: 'mapbox://styles/mapbox/streets-v9',
center: [ln, lt],
zoom: 15
});
var marker = L.icon({
iconUrl: 'actpin.png',
iconAnchor: [20, 50]
});
L.marker([ln, lt], {icon: marker}).addTo(map);
//adding the layer to map with different colors each line
map.on('load', function () {
L.geoJson(sunPos, {
style: function(feature) {
switch (feature.properties.id) {
case 'sunrise': return {color: "#FFFF33"};
case 'sunset': return {color: "#FF9933"};
}
}
}).addTo(map);
});
}
যখন ফাংশনটি বলা হয়, আমি নিম্নলিখিত ত্রুটিটি পাই:
ত্রুটি: স্টাইল লোড করা হয় না
"কঠোর ব্যবহার করুন"; ফাংশন স্টাইল (e, t, r) {this.animationLoop = t || নতুন অ্যানিমেশনলুপ, this.dispatcher = নতুন ডিসপ্যাচার (r || 1, এটি), this.spriteAtlas = নতুন স্প্রাইটআ্যাটলাস (512,512), this.lineAtlas = নতুন লাইনএ্যাটলাস (256,512), এটি._লেয়ার্স =} this, এটি._র্ডার = [], এটি._গোষ্ঠী = [], এই.সোর্স = {this, এই.জুমহিসটরি = {}, ইউজার.বিন্ডএল ([ "_forwardSourceEvent", "_ forwardTileEvent", "_ forwardLayerEvent", "_ redoPlacement"], এই), এই__resetUpdates (); var s = ফাংশন (ই, টি) {যদি (e) ফিরে আসে তবে এই আগুন ("ত্রুটি", " {ত্রুটি: ই}); যদি (! ভেলিয়েটস্টাইল.ইমিটারইরিজ (এটি, ভ্যালিডস্টাইল (টি)))। এটি._ লোডড =! 0, এই.স্টাইলশিট = টি, এটি.আপডেটক্লাসস (); আরআর = টি.সোর্স; (ভারতে আর) এস.এডিডিএসোর্স (গুলি, আর [এস]); টি.স্প্রিট && (এই.স্প্রিট = নতুন ইমেজপ্রাইট (t.sprit), this.sprite.on ("লোড", this.fire.bind ( এটি, "পরিবর্তন")), এই উদাহরণস্বরূপ = নতুন গ্লাইফসোর্স (টি।glyphs), this._resolve (), this.fire ("load") ind}। bind (this); "string" == typof e? ajax.getJSON (normalize URL (e), s): browser.frame (গুলি) .বাইন্ড (এটি, নাল, ই)), এটি.অন ("উত্স.লোড", ফাংশন (ই) {ভরা টি = ই.সোর্স; যদি (টি && t.vectorLayerIds) এর জন্য (var r in..layers) {var s = this._layers [r]; s.s Source === t.id && this._uthorateLayer (s)}})} var ইভেন্টড = প্রয়োজনীয় ("../ ব্যবহার / সজ্জিত"), স্টাইললায়ার = প্রয়োজন ("। / শৈলী_কর্তা "), ImageSprite = প্রয়োজন (" ./ image_sprite "), GlyphSource = প্রয়োজন (" ../ প্রতীক / glyph_source "), SpriteAtlas = প্রয়োজন (" ../ প্রতীক / sprite_atlas "), LineAtlas = প্রয়োজন (" ../ রেন্ডার / line_atlas "), util = প্রয়োজন (" ../ util / util "), Ajax = প্রয়োজন (" ../ util / Ajax "), normalizeURL = প্রয়োজন (" ../ util / mapbox ")। normalizeStyleURL, ব্রাউজার =, ( "../ util / ব্রাউজার") প্রয়োজনডেস্প্যাচার = প্রয়োজন ( "../ util / ডেস্প্যাচার"), AnimationLoop = ( "./ animation_loop") প্রয়োজন, validateStyle = প্রয়োজন ( "./ validate_style"), উত্স = প্রয়োজন ( "../ উৎস / উৎসে"), ! styleSpec = ( "./ style_spec"), StyleFunction = প্রয়োজন ( "./ style_function") প্রয়োজন; module.exports = স্টাইল, Style.prototype = util.inherit (Evented, {: _ লোড: 1, _validateLayer: ফাংশন (ঙ) {var t = this.source [e.source]; e.SourceLayer &&T && t.vectorLayerIds && - 1 === t.vectorLayerIds.indexOf (e.sourceLayer) && this.fire ("ত্রুটি", {ত্রুটি: নতুন উত্স ('উত্স স্তর "'+ e.SourceLayer +'" স্টাইল স্তর "" + e.id + '"')}) specified, লোড করা: ফাংশন () {যদি (! এটি) উত্স অনুসারে" "+ t.id + '" উত্সটিতে বিদ্যমান নেই ._ লোডড) ফিরুন! 1; এর জন্য (এই সংস্করণে var) যদি (! এটি.সোর্স [ই]) থাকে।লোড ()) রিটার্ন! 1; রিটার্ন! এই.স্প্রিট || this.sprite.loaded ()}, _ সংকল্প: ফাংশন () {var ই, টি; এটি._লেয়ার্স = {}, এটি._র্ডার = এটি.স্টাইলশিট। স্তরসমূহ.ম্যাপ (ফাংশন (ই) {রিটার্ন ই.আইডি}); এর জন্য (ভার্সা r = 0; rMath.floor (e) && (t.lastIntegerZoom = ম্যাথ.ফ্লোয়ার (ই + 1), t.lastIntegerZoomTime = তারিখ। NOW ()), t.lastZoom = ঙ},_চেকলয়েড: ফাংশন () {যদি (! এটি._লোড করা) নতুন ত্রুটি নিক্ষেপ করুন ("স্টাইলটি লোড করা হয় না") update, আপডেট: ফাংশন (ই, টি) {যদি (! এটি_আপডেটস পরিবর্তিত) এটি ফেরত দেয়; যদি ( এই। কীগুলি (এটি._আপটেটস.সোর্সস); (এস এস = 0; এস = 0; আর -) এর জন্য (ভার্সেস = এই.অর্ডার [আর], i = 0; i)
আমি ত্রুটিটি চিহ্নিত করতে পারি (ব্লককোটের অভ্যন্তরে হাইলাইট করা), তবে কীভাবে এটি সংশোধন করতে হবে সে সম্পর্কে আমার কোনও ধারণা নেই ... এটির সমাধানের জন্য আমার চেষ্টাটি ব্যবহার করা হয়েছিল map.on('load', function())
, তবে আমি এখনও একই ত্রুটি পেয়েছি।
কোন চিন্তা?