OpenLayers에서 위도 경도 선을 지도에 그리기
14384 단어 Openlayers자바스크립트맵GPS
대상 환경
샘플
이런 식으로 코드를 쓰면 좋다고 생각합니다.
ol_sample.html<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>OL Sample - LineString</title>
<script src="https://cdn.rawgit.com/openlayers/openlayers.github.io/master/en/v5.3.0/build/ol.js"></script>
<link rel="stylesheet" href="https://cdn.rawgit.com/openlayers/openlayers.github.io/master/en/v5.3.0/css/ol.css">
</head>
<body>
<div id="map" class="map"></div>
<script>
const Map = ol.Map;
const View = ol.View;
const Feature = ol.Feature;
const Polyline = ol.format.Polyline;
const Point = ol.geom.Point;
const TileLayer = ol.layer.Tile;
const VectorLayer = ol.layer.Vector;
const OSM = ol.source.OSM;
const VectorSource = ol.source.Vector;
const Icon = ol.style.Icon;
const Stroke = ol.style.Stroke;
const Style = ol.style.Style;
const Geom = ol.geom;
const coordinates = [ // 経度、緯度の順で定義
[135.495650, 34.702113],
[139.767130, 35.680776]
];
var route = new Geom.LineString(coordinates);
route.transform('EPSG:4326', 'EPSG:3857'); // 地理座標系(WGS84) の EPSG:4326 からメルカトル図法の EPSG:3857 に変換します
const routeCoords = route.getCoordinates();
const routeLength = routeCoords.length;
const routeFeature = new Feature({
type: 'route',
geometry: route
});
const startMarker = new Feature({
type: 'icon',
geometry: new Point(routeCoords[0])
});
const endMarker = new Feature({
type: 'icon',
geometry: new Point(routeCoords[routeLength - 1])
});
const styles = {
'route': new Style({
stroke: new Stroke({
width: 6, color: [237, 30, 164, 0.8]
})
}),
'icon': new Style({
image: new Icon({
anchor: [0.5, 1],
src: 'http://github.com/suzutsuki0220/TrackView/blob/master/src/image/caution.png?raw=true' // 適当に置き換えてください
})
})
};
const vectorLayer = new VectorLayer({
source: new VectorSource({
features: [routeFeature, startMarker, endMarker]
}),
style: function(feature) {
return styles[feature.get('type')];
}
});
var map = new Map({
target: document.getElementById('map'),
view: new View({
center: routeCoords[0],
zoom: 7
}),
layers: [
new TileLayer({
source: new OSM()
}),
vectorLayer
]
});
</script>
</body>
</html>
도쿄와 오사카를 연결하는 선이 표시됩니다.
수업 정보
View, Souce, Feature 등 많은 이름이 나오므로 우선 그 역할을 정리했습니다. OpenLayers를 처음 만졌을 때 고생하는 곳이라고 생각했습니다.
공식 문서는 htps : // 오페인 rs. 오 rg / 엔 / 아 st / 두 c / 쓰리 아 ls / 곤세 pts. HTML에 기록되어 있습니다.
이름
역할
보충
Map
기초가 되는 클래스
Map 클래스에 View, Layer 등을 설정합니다.
보기
지도 표시와 관련된 설정을 유지합니다.
샘플에서는 중앙 위치와 줌 레벨을 설정합니다.
소스
레이어를 구성하기 위한 데이터를 정의합니다.
지도 공급자를 변경하거나 GeoJSON 및 KML과 같은 데이터 형식을 지정합니다.
레이어
화면의 표시를 구성하는 레이어입니다 Tile
샘플에서는 다음 레이어를 사용합니다. Image
OSM 지도 표시, Vector
coordinates(경도/위도) 선 보기
Feature
레이어를 구성하는 요소
VectorTile
, Tile:
, Vector:
, Polyline
, Point
는 대략 알 수 있다고 생각하므로 생략합니다Icon
는 Geometry입니다.
흐리게
지금까지 Google Map의 API를 사용하고 있었지만, 맵의 열화나 요금 인상의 화제가 오르고 있으므로, 다른 맵으로 전환하려고 생각해 OpenLayers 를 접해 보았습니다.
OpenLayers 로 할 수 있는 것은 공식 Examples 에 정리되어 있습니다만, 경로를 draw 하는 돈 피샤의 예는 발견되지 않고, 가장 가까운 마커 애니메이션 에서는 예가 너무 복잡했습니다. Example 의 polyline 을 바꾸면 좋겠다고 생각했지만, 경도 위도의 배열로 바꾼 것만으로는 경로는 표시되지 않아 고생하고 있었습니다. 어색한 메모라고 생각하지만 도움이되면 다행입니다.
Reference
이 문제에 관하여(OpenLayers에서 위도 경도 선을 지도에 그리기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/suzutsuki0220/items/4433594a68ae64e5d03b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>OL Sample - LineString</title>
<script src="https://cdn.rawgit.com/openlayers/openlayers.github.io/master/en/v5.3.0/build/ol.js"></script>
<link rel="stylesheet" href="https://cdn.rawgit.com/openlayers/openlayers.github.io/master/en/v5.3.0/css/ol.css">
</head>
<body>
<div id="map" class="map"></div>
<script>
const Map = ol.Map;
const View = ol.View;
const Feature = ol.Feature;
const Polyline = ol.format.Polyline;
const Point = ol.geom.Point;
const TileLayer = ol.layer.Tile;
const VectorLayer = ol.layer.Vector;
const OSM = ol.source.OSM;
const VectorSource = ol.source.Vector;
const Icon = ol.style.Icon;
const Stroke = ol.style.Stroke;
const Style = ol.style.Style;
const Geom = ol.geom;
const coordinates = [ // 経度、緯度の順で定義
[135.495650, 34.702113],
[139.767130, 35.680776]
];
var route = new Geom.LineString(coordinates);
route.transform('EPSG:4326', 'EPSG:3857'); // 地理座標系(WGS84) の EPSG:4326 からメルカトル図法の EPSG:3857 に変換します
const routeCoords = route.getCoordinates();
const routeLength = routeCoords.length;
const routeFeature = new Feature({
type: 'route',
geometry: route
});
const startMarker = new Feature({
type: 'icon',
geometry: new Point(routeCoords[0])
});
const endMarker = new Feature({
type: 'icon',
geometry: new Point(routeCoords[routeLength - 1])
});
const styles = {
'route': new Style({
stroke: new Stroke({
width: 6, color: [237, 30, 164, 0.8]
})
}),
'icon': new Style({
image: new Icon({
anchor: [0.5, 1],
src: 'http://github.com/suzutsuki0220/TrackView/blob/master/src/image/caution.png?raw=true' // 適当に置き換えてください
})
})
};
const vectorLayer = new VectorLayer({
source: new VectorSource({
features: [routeFeature, startMarker, endMarker]
}),
style: function(feature) {
return styles[feature.get('type')];
}
});
var map = new Map({
target: document.getElementById('map'),
view: new View({
center: routeCoords[0],
zoom: 7
}),
layers: [
new TileLayer({
source: new OSM()
}),
vectorLayer
]
});
</script>
</body>
</html>
View, Souce, Feature 등 많은 이름이 나오므로 우선 그 역할을 정리했습니다. OpenLayers를 처음 만졌을 때 고생하는 곳이라고 생각했습니다.
공식 문서는 htps : // 오페인 rs. 오 rg / 엔 / 아 st / 두 c / 쓰리 아 ls / 곤세 pts. HTML에 기록되어 있습니다.
이름
역할
보충
Map
기초가 되는 클래스
Map 클래스에 View, Layer 등을 설정합니다.
보기
지도 표시와 관련된 설정을 유지합니다.
샘플에서는 중앙 위치와 줌 레벨을 설정합니다.
소스
레이어를 구성하기 위한 데이터를 정의합니다.
지도 공급자를 변경하거나 GeoJSON 및 KML과 같은 데이터 형식을 지정합니다.
레이어
화면의 표시를 구성하는 레이어입니다
Tile
샘플에서는 다음 레이어를 사용합니다.
Image
OSM 지도 표시, Vector
coordinates(경도/위도) 선 보기Feature
레이어를 구성하는 요소
VectorTile
, Tile:
, Vector:
, Polyline
, Point
는 대략 알 수 있다고 생각하므로 생략합니다Icon
는 Geometry입니다.흐리게
지금까지 Google Map의 API를 사용하고 있었지만, 맵의 열화나 요금 인상의 화제가 오르고 있으므로, 다른 맵으로 전환하려고 생각해 OpenLayers 를 접해 보았습니다.
OpenLayers 로 할 수 있는 것은 공식 Examples 에 정리되어 있습니다만, 경로를 draw 하는 돈 피샤의 예는 발견되지 않고, 가장 가까운 마커 애니메이션 에서는 예가 너무 복잡했습니다. Example 의 polyline 을 바꾸면 좋겠다고 생각했지만, 경도 위도의 배열로 바꾼 것만으로는 경로는 표시되지 않아 고생하고 있었습니다. 어색한 메모라고 생각하지만 도움이되면 다행입니다.
Reference
이 문제에 관하여(OpenLayers에서 위도 경도 선을 지도에 그리기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/suzutsuki0220/items/4433594a68ae64e5d03b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(OpenLayers에서 위도 경도 선을 지도에 그리기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/suzutsuki0220/items/4433594a68ae64e5d03b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)