Sử dụng sơ đồ cơ sở riêng với API ArcGIS cho Javascript?


12

Tôi đang cố gắng tạo bản đồ bằng API Javascript.

Tôi muốn sử dụng sơ đồ cơ sở của riêng mình, nhưng tôi không thể tìm thấy mã đơn giản nhất để làm điều này.

Tôi luôn thấy một cái gì đó như thế này:

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

Nhưng tôi không muốn sử dụng các bản đồ nền trực tuyến ArcGIS.

Mã để tạo một dịch vụ bản đồ tôi đang lưu trữ bản đồ cơ sở của tôi là gì?


1
bạn đã tạo gạch từ bản đồ cơ sở của riêng bạn?
Mapperz

Câu trả lời:


12

Các tham chiếu API cho Bản đồ lớp nói những điều sau đây:

Sau đây là các tùy chọn hợp lệ: "đường phố", "vệ tinh", "lai", "topo", "xám", "đại dương", "địa lý quốc gia", "osm". Kể từ phiên bản 3.3

Thay vào đó, bạn chỉ nên xác định Lớp dịch vụ bản đồ lát gạch ArcGIS mới và sử dụng nó như sau:

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

1
@StephenLead setBasemap chỉ chấp nhận tham số chuỗi, vì vậy nó sẽ không hoạt động!
digz6666

2
@ digz6666 ôi, tôi nghĩ bạn đúng. Tôi sẽ xóa bình luận đó
Stephen Lead

2
@StephenLead Tôi đã tìm thấy một cách. Tôi sẽ đăng như một câu trả lời. Rất tiếc, cần 10 điểm đại diện để trả lời câu hỏi này, chết tiệt :)
digz6666

@ digz6666: Bạn không cần 10 Reps để tạo câu trả lời. Xem gis.stackexchange.com/help/priv đặc quyền
Devdatta Tengshe

5

Đối với Arcascript SDK javascript phiên bản 3.x, bạn có thể sử dụng lớp esri / basemaps để khai báo và đăng ký bản đồ nền tùy chỉnh và sử dụng với bản đồ của mình: https://developers.arcgis.com/javascript/3/jsapi/esri.basemaps-amd.html

Khai báo và đăng ký bản đồ cơ sở tùy chỉnh:

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" }
  ]
};

Sử dụng sơ đồ cơ sở tùy chỉnh trong trình tạo bản đồ:

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

Hoặc bạn có thể áp dụng sơ đồ cơ sở tùy chỉnh của mình cho bản đồ hiện có:

map.setBasemap("mybasemap");

Ví dụ mã đầy đủ: https://codepen.io/digz6666/pen/wPwPbW

Đối với phiên bản SDK javascript SDK 4.x, bạn có thể sử dụng esri / Basemap.

Khai báo lớp bản đồ cơ sở và bản đồ cơ sở:

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'
});

Áp dụng sơ đồ cơ sở cho đối tượng bản đồ hiện có:

map.basemap = myBasemap;

2

Bạn không phải chỉ định một bản đồ nền tích hợp. Thêm sơ đồ cơ sở tùy chỉnh của bạn dưới dạng một lớp như vậy.

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);
});
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.