জাভাস্ক্রিপ্টের জন্য আরকজিআইএস এপিআইয়ের নিজস্ব বেসম্যাপ ব্যবহার করছেন?


12

আমি জাভাস্ক্রিপ্ট এপিআই ব্যবহার করে একটি মানচিত্র তৈরির চেষ্টা করছি।

আমি আমার নিজস্ব বেসম্যাপ ব্যবহার করতে চাই, তবে এটি করার জন্য আমি সবচেয়ে সাধারণ কোডটি খুঁজে পাচ্ছি না।

আমি সবসময় এরকম কিছু দেখতে পাই:

  function init() {
    map = new esri.Map("mapDiv", {
      basemap: "satellite",
      center: [-97.395, 37.537],
      zoom: 11
    });

তবে আমি আরকজিআইএস অনলাইন বেসম্যাপগুলি ব্যবহার করতে চাই না।

আমি আমার বেসম্যাপটি হোস্ট করছি এমন একটি মানচিত্র পরিষেবা করার কোডটি কী?


1
আপনি নিজের বেসম্যাপ থেকে টাইলস তৈরি করেছেন?
Mapperz

উত্তর:


12

API উল্লেখ ম্যাপ বর্গ জন্য নিম্নলিখিত বলেছেন:

নিম্নলিখিত বৈধ বিকল্পগুলি: "রাস্তা", "উপগ্রহ", "সংকর", "টোপো", "ধূসর", "মহাসাগর", "জাতীয়-ভৌগলিক", "ওএসএম"। সংস্করণ 3.3 হিসাবে

পরিবর্তে, আপনাকে কেবল একটি নতুন আরকজিআইএস টাইলড ম্যাপ পরিষেবা স্তরটি সংজ্ঞায়িত করতে হবে এবং নীচে এটি ব্যবহার করতে হবে:

var baseMapLayer = new esri.layers.ArcGISTiledMapServiceLayer("your URL");
map.addLayer(baseMapLayer);

1
@ স্টিফেনলিড সেটবেসেম্যাপ কেবল স্ট্রিং প্যারামিটার গ্রহণ করে, সুতরাং এটি কার্যকর হবে না!
digz6666

2
@ digz6666 ওফ, আমার মনে হয় আপনি ঠিক আছেন। আমি সেই মন্তব্যটি
স্টিফেন লিড

2
@ স্টেফেনলিড আমি একটি উপায় খুঁজে পেয়েছি। আমি উত্তর হিসাবে পোস্ট করব। ওহো এটির উত্তর দেওয়ার জন্য এটির জন্য 10 টি পুনরায় পয়েন্ট দরকার,
অভিযুক্ত

@ digz6666: একটি উত্তর তৈরি করতে আপনার 10 টি Reps প্রয়োজন হবে না। Gis.stackexchange.com/help/privileges
দেবদত্ত টেংশে

5

আরকিস জাভাস্ক্রিপ্ট এসডিকে সংস্করণ ৩.x এর জন্য আপনি কাস্টম বেসম্যাপগুলি ঘোষণার জন্য এবং নিবন্ধিত করতে এসেসি / বেসম্যাপ ক্লাস ব্যবহার করতে পারেন এবং আপনার মানচিত্রের সাথে ব্যবহার করতে পারেন: https://developers.arcgis.com/javascript/3/jsapi/esri.basemaps-amd.html

কাস্টম বেসম্যাপ ঘোষণা এবং নিবন্ধন করুন:

Basemaps.mybasemap = {
  title: 'My custom basemap',
  thumbnailUrl: 'https://js.arcgis.com/3.22/esri/images/basemap/satellite.jpg',
  //itemId: 'ulas',
  baseMapLayers: [
    { url: "https://services.arcgisonline.com/ArcGIS/rest/services/Specialty/DeLorme_World_Base_Map/MapServer" }
  ]
};

মানচিত্র নির্মাতায় কাস্টম বেসম্যাপ ব্যবহার করুন:

var map = new Map("mapDiv", {
  basemap: "mybasemap",
  center: [-122.69, 45.52],
  zoom: 3
});

অথবা আপনি বিদ্যমান মানচিত্রে আপনার কাস্টম বেসম্যাপটি প্রয়োগ করতে পারেন:

map.setBasemap("mybasemap");

সম্পূর্ণ কোড উদাহরণ: https://codepen.io/digz6666/pen/wPwPbW

আরকিস জাভাস্ক্রিপ্ট এসডিকে সংস্করণ 4.x এর জন্য আপনি এসরি / বেসম্যাপ ব্যবহার করতে পারেন।

বেস মানচিত্র স্তর এবং বেস মানচিত্র ঘোষণা করুন:

var baseLayer = new MapImageLayer({
  url: "https://services.arcgisonline.com/ArcGIS/rest/services/Specialty/DeLorme_World_Base_Map/MapServer"
});
var myBasemap = this.esri.basemap({
  baseLayers: [baseLayer],
  title: 'My custom basemap',
  id: 'my_custom_basemap'
});

বিদ্যমান মানচিত্রের অবজেক্টে বেসম্যাপ প্রয়োগ করুন:

map.basemap = myBasemap;

2

আপনাকে একটি অন্তর্নির্মিত বেসম্যাপটি নির্দিষ্ট করতে হবে না। আপনার কাস্টম বেসম্যাপটি তেমন একটি স্তর হিসাবে যুক্ত করুন।

var map;
require(["esri/map", "esri/layers/ArcGISTiledMapServiceLayer", "dojo/domReady!"],
function (Map, ArcGISTiledMapServiceLayer ) {
    map = new Map("map", {                
        center: [-76.756, 40.241],
        zoom: 8
    });            
    var customBasemap = new ArcGISTiledMapServiceLayer(
    "http://services.arcgisonline.com/ArcGIS/rest/services/NatGeo_World_Map/MapServer");
    map.addLayer(customBasemap);
});
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.