[英]show a simple icon with openlayers and a external geojson file
I'd like some help, I have this code below, it's working, but I would like to put de "geojsonObject" not in a variable, but in a.geojson file and load it, I'm not too familiar with javascript and geojson.我需要一些帮助,我在下面有这段代码,它正在工作,但我想把 de "geojsonObject" 不是放在变量中,而是放在 a.geojson 文件中并加载它,我不太熟悉 javascript 和地理json。
import 'ol/ol.css';
import Feature from 'ol/Feature';
import Map from 'ol/Map';
import View from 'ol/View';
import GeoJSON from 'ol/format/GeoJSON';
import Circle from 'ol/geom/Circle';
import {Tile as TileLayer, Vector as VectorLayer} from 'ol/layer';
import {OSM, Vector as VectorSource} from 'ol/source';
import {Circle as CircleStyle, Fill, Stroke, Style} from 'ol/style';
import {Icon} from 'ol/style';
var image = new CircleStyle({
radius: 5,
fill: null,
stroke: new Stroke({color: 'red', width: 1})
});
var styles = {
'Point': new Style({
image: new Icon({
rotation: 180 / 180 * 3.14,
src: 'data/test.svg'
})
})
};
var geojsonObject = {
'type': 'FeatureCollection',
'crs': {
'type': 'name',
'properties': {
'name': 'EPSG:3857'
}
},
'features': [{
'type': 'Feature',
'rotation': 180 / 180 * 3.14,
'geometry': {
'type': 'Point',
'coordinates': [0, 0]
}
}]
};
var styleFunction = function(feature) {
return styles[feature.getGeometry().getType()];
};
var vectorSource = new VectorSource({
features: (new GeoJSON()).readFeatures(geojsonObject)
});
vectorSource.addFeature(new Feature(new Circle([5e6, 7e6], 1e6)));
var vectorLayer = new VectorLayer({
source: vectorSource,
style: styleFunction
});
var map = new Map({
layers: [
new TileLayer({
source: new OSM()
}),
vectorLayer
],
target: 'map',
view: new View({
center: [0, 0],
zoom: 2
})
});
I tried with the test.geojson file below, but I don't know if it's correct, and also I would like to know how to change the "vectorSource" to load it我尝试使用下面的 test.geojson 文件,但我不知道它是否正确,并且我想知道如何更改“vectorSource”以加载它
{
"type": "FeatureCollection",
"crs": {
"type": "name",
"properties": {
"name": "EPSG:3857"
}
},
"features": [{
"type": "Feature",
"rotation": 90 / 180 * 3.14,
"geometry": {
"type": "Point",
"coordinates": [0, 0]
}
}]
}
OpenLayers will load and parse a url OpenLayers 将加载并解析 url
var vectorSource = new VectorSource({
format: new GeoJSON(),
url: 'test.geojson'
});
If you use the file extension .geojson
make sure it is enabled in your server MIME types (otherwise just use .json
)如果您使用文件扩展名
.geojson
,请确保在您的服务器 MIME 类型中启用它(否则只需使用.json
)
If you want to access non-standard properties from your geojson they must go in a properties object如果你想从你的 geojson 访问非标准属性,他们必须在属性 object 中的 go
"features": [{
"type": "Feature",
"properties" : {
"rotation": 90 / 180 * 3.14
},
"geometry": {
"type": "Point",
"coordinates": [0, 0]
}
}]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.