Запустите базовый шаблон 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”