जावास्क्रिप्ट के लिए आर्कजीआईएस एपीआई के साथ खुद के आधार का उपयोग करना?


12

मैं जावास्क्रिप्ट एपीआई का उपयोग कर एक नक्शा बनाने की कोशिश कर रहा हूं।

मैं अपने स्वयं के बेसमैप का उपयोग करना चाहता हूं, लेकिन मुझे ऐसा करने के लिए सबसे सरल कोड नहीं मिल सकता है।

मैं हमेशा कुछ इस तरह से देखता हूं:

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

लेकिन मैं ArcGIS ऑनलाइन बेसमैप का उपयोग नहीं करना चाहता।

मैं अपना बेसमैप होस्ट करने के लिए एक मानचित्र सेवा बनाने के लिए कोड क्या है?


1
क्या आपने अपने बेसमैप से टाइलें बनाई हैं?
Mapperz

जवाबों:


12

API संदर्भ मानचित्र कक्षा के लिए निम्नलिखित का कहना है:

निम्नलिखित वैध विकल्प हैं: "सड़कों", "उपग्रह", "संकर", "टोपो", "ग्रे", "महासागरों", "राष्ट्रीय-भौगोलिक", "आसम"। संस्करण 3.3 के रूप में

आपको इसके बजाय, बस एक नई आर्किस टाइल मानचित्र मानचित्र सेवा को परिभाषित करना चाहिए और इसे निम्नानुसार उपयोग करना चाहिए:

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

1
@StephenLead setBasemap केवल स्ट्रिंग पैरामीटर को स्वीकार करता है, इसलिए यह काम नहीं करेगा!
डाइजेन्6666

2
@ digz6666 उफ़, मुझे लगता है कि तुम सही हो। मैं उस टिप्पणी को हटा दूंगा
स्टीफन लीड

2
@StephenLead मुझे एक रास्ता मिल गया है। मैं एक उत्तर के रूप में पोस्ट करूंगा। उफ़ इसे जवाब देने के लिए 10 प्रतिनिधि बिंदुओं की आवश्यकता है, लानत :)
digz6666

@ digz6666: उत्तर बनाने के लिए आपको 10 Reps की आवश्यकता नहीं होनी चाहिए। Gis.stackexchange.com/help/privileges
Devdatta Tengshe

5

आर्कगिस जावास्क्रिप्ट एसडीके संस्करण 3.x के लिए, आप कस्टम बेसमैप घोषित करने और रजिस्टर करने के लिए esri / basemaps वर्ग का उपयोग कर सकते हैं और अपने मानचित्र के साथ उपयोग कर सकते हैं: https://developers.arcgis.com/javascript/3/jjapi/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);
});
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.