Рубрики
Без рубрики

Листовка JS Capture Geojson до WKT (SQL Spatial формат)

Запустите базовый шаблон HTML <... Теги с JavaScript, начинающими, листовка, карта.

Запустите базовый шаблон HTML




  
    
    Leaflet WKT Example
    
  
  
  

Включите файл CSS Lastlet в заголовке вашего документа:


Включите файл CSS Read CSS в заголовке в заголовке вашего документа:


Включите файл JavaScript Rastlet после CSS Leaflet (до закрытия ярлык):


Включите листовка Draw JavaScript файл после CSS Leaflet (до закрытия ярлык):


Включите файл javaScript javaScript javaScript reastlet после CSS брошюра (до закрытия ярлык):


Включите файл JavaScript OpenLayers после CSS Leaflet (до закрытия ярлык):


Поместите элемент DIV с ID карта Где вы хотите, чтобы ваша карта была:

Убедитесь, что контейнер на карте имеет определенную высоту, например, устанавливая его в CSS:

body {
  padding: 0;
  margin: 0;
}
html,
body,
#map {
  height: 100%;
}

Теперь вы готовы инициализировать карту и сделать некоторые вещи с ним.

Давайте начнем с настройки сервисов BaseMap. Смотрите ( Документы ) Для получения дополнительной информации:

//Init Overlays
var overlays = {};

//Init BaseMaps
var basemaps = {
  "OpenStreetMaps": L.tileLayer(
    "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
    {
      minZoom: 2,
      maxZoom: 19,
      id: "osm.streets"
    }
  ),
  "Google-Map": L.tileLayer(
    "https://mt1.google.com/vt/lyrs=r&x={x}&y={y}&z={z}",
    {
      minZoom: 2,
      maxZoom: 19,
      id: "google.street"
    }
  ),
  "Google-Satellite": L.tileLayer(
    "https://mt1.google.com/vt/lyrs=s&x={x}&y={y}&z={z}",
    {
      minZoom: 2,
      maxZoom: 19,
      id: "google.satellite"
    }
  ),
  "Google-Hybrid": L.tileLayer(
    "https://mt1.google.com/vt/lyrs=y&x={x}&y={y}&z={z}",
    {
      minZoom: 2,
      maxZoom: 19,
      id: "google.hybrid"
    }
  )
};

Далее мы настроим параметры карты, такие как центр и зум.

//Map Options
var mapOptions = {
  zoomControl: false,
  attributionControl: false,
  center: [-29.0529434318608, 152.01910972595218],
  zoom: 10,
  layers: [basemaps.OpenStreetMaps]
};

Наконец мы можем инициализировать карту

//Render Main Map
var map = L.map("map", mapOptions);

Управляйте управлением слоя и добавьте его на карту:

var layerControl = L.control.layers(basemaps, overlays).addTo(map);

Инициализируйте редактируемый слой и добавьте его на карту:

var editableLayers = new L.FeatureGroup();
map.addLayer(editableLayers);

Инициализируйте управление листовой пульты и добавьте его на карту:

var drawControl = new L.Control.Draw({
  position: 'topright',
  draw: {
    polyline: true,
    polygon: {
      allowIntersection: false, // Restricts shapes to simple polygons 
      drawError: {
        color: '#e1e100', // Color the shape will turn when intersects 
        message: 'Oh snap! you can\'t draw that!' // Message that will show when intersect 
      }
    },
    circle: true, // Turns off this drawing tool 
    rectangle: true,
    marker: true
  },
  edit: {
    featureGroup: editableLayers, //REQUIRED!! 
    remove: true
  }
});

map.addControl(drawControl);

Установка слушателей для рисования листовок:

//On Draw Create Event
map.on(L.Draw.Event.CREATED, function(e) {
  var type = e.layerType,
    layer = e.layer;

  if (type === 'marker') {
    layer.bindPopup('LatLng: ' + layer.getLatLng().lat + ',' + layer.getLatLng().lng).openPopup();
  }

  editableLayers.addLayer(layer);
  layerGeoJSON = editableLayers.toGeoJSON();
  alert("GEOJSON FORMAT\r\n" + JSON.stringify(layerGeoJSON));

  var wkt_options = {};
  var geojson_format = new OpenLayers.Format.GeoJSON();
  var testFeature = geojson_format.read(layerGeoJSON);
  var wkt = new OpenLayers.Format.WKT(wkt_options);
  var out = wkt.write(testFeature);

  alert("WKT FORMAT\r\n" + out);
});

//On Draw Edit Event
map.on(L.Draw.Event.EDITED, function(e) {
  var type = e.layerType,
    layer = e.layer;

  layerGeoJSON = editableLayers.toGeoJSON();
  alert("GEOJSON FORMAT\r\n" + JSON.stringify(layerGeoJSON));

  var wkt_options = {};
  var geojson_format = new OpenLayers.Format.GeoJSON();
  var testFeature = geojson_format.read(layerGeoJSON);
  var wkt = new OpenLayers.Format.WKT(wkt_options);
  var out = wkt.write(testFeature);

  alert("WKT FORMAT\r\n" + out);
});

//On Draw Delete Event
map.on(L.Draw.Event.DELETED, function(e) {
  var type = e.layerType,
    layer = e.layer;

  layerGeoJSON = editableLayers.toGeoJSON();
  alert("GEOJSON FORMAT\r\n" + JSON.stringify(layerGeoJSON));

  var wkt_options = {};
  var geojson_format = new OpenLayers.Format.GeoJSON();
  var testFeature = geojson_format.read(layerGeoJSON);
  var wkt = new OpenLayers.Format.WKT(wkt_options);
  var out = wkt.write(testFeature);

  alert("WKT FORMAT\r\n" + out);
});

Увидеть это в действии на кодепене

Присоединяйтесь к мне на Hashnode.

Оригинал: “https://dev.to/itsmestevieg/leafletjs-capture-geojson-wkt-sql-spatial-format-12lb”