<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>openlayers3</title>
<link rel="stylesheet" href="ol.css" />
<script type="text/javascript" src="ol.js"></script>
<style>
html{
height: 100%;
width: 100%;
padding:0;
margin:0;
}
body{
height: 100%;
width: 100%;
padding:0;
margin:0;
}
.map {
height: 100%;
width: 100%;
}
</style>
</head>
<body>
<div id="map" class="map"></div>
<script>
var BaseMapLayer = function(options) {
var layer = new ol.layer.Tile({
source: new ol.source.XYZ({
url: options.url,
tilePixelRatio: 1,
minZoom:2,
maxZoom:17
})
});
return layer;
};
var view = new ol.View({
center: ol.proj.fromLonLat([200, 11]),
zoom: 13,
minZoom: 13,
maxZoom: 17
});
var sateliteopt = {
url: 'data/tiles/{z}/{x}/{y}.png'
};
var sate = new ol.layer.Group({
layers: [
new BaseMapLayer(sateliteopt)
]
});
// 添加标注层
var markerLayer = new ol.layer.Vector({
source: new ol.source.Vector(),
style: new ol.style.Style({
image: new ol.style.Icon({
anchor: [0.5, 46],
anchorXUnits: 'fraction',
anchorYUnits: 'pixels',
src: 'data/marker.png' // 标注图标的路径
})
})
});
// 创建标注
var marker = new ol.Overlay({
element: document.getElementById('marker'),
positioning: 'center-center',
stopEvent: false,
offset: [0, -23]
});
var map = new ol.Map({
view: view,
layers: [
sate,
markerLayer // 添加标注层到地图
],
overlays: [marker], // 添加标注到地图
target: 'map'
});
// 监听点击事件
map.on('click', function(event) {
// 将点击的经纬度转换为地图的像素坐标
var feature = new ol.Feature({
geometry: new ol.geom.Point(event.coordinate)
});
// 将标注添加到标注层
markerLayer.getSource().addFeature(feature);
// 将标注移动到点击的位置
marker.setPosition(event.coordinate);
});
/* map.on('click', function(event) {
// 将点击的像素坐标转换为经纬度坐标
var coordinate = event.coordinate;
var lat = ol.proj.toLonLat(coordinate)[1];
var lon = ol.proj.toLonLat(coordinate)[0];
// 在控制台打印坐标
console.log('纬度:', lat, '经度:', lon);
// 创建一个点要素
var feature = new ol.Feature({
geometry: new ol.geom.Point(coordinate)
});
// 清除标注层上的所有要素
markerLayer.getSource().clear();
// 将新标注添加到标注层
markerLayer.getSource().addFeature(feature);
// 将标注移动到点击的位置
marker.setPosition(coordinate);
});*/
</script>
</body>
</html>
openlayers加载瓦片地图并手动标记坐标点
需积分: 2 3 浏览量
2024-04-29
11:12:04
上传
评论
收藏 840KB ZIP 举报
我向往自由
- 粉丝: 3809
- 资源: 2
最新资源
- python-leetcode面试题解之第198题打家劫舍-题解.zip
- python-leetcode面试题解之第191题位1的个数-题解.zip
- python-leetcode面试题解之第186题反转字符串中的单词II-题解.zip
- 一个基于python的web后端高性能开发框架,下载可用
- python-leetcode面试题解之第179题最大数-题解.zip
- python-leetcode面试题解之第170题两数之和III数据结构设计-题解.zip
- python-leetcode面试题解之第168题Excel表列名称-题解.zip
- python-leetcode面试题解之第167题两数之和II输入有序数组-题解.zip
- python-leetcode面试题解之第166题分数到小数-题解.zip
- python-leetcode面试题解之第165比较版本号-题解.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈