OpenLayers入门,OpenLayers地图鼠标点击事件使用,点击地图后弹框并显示当前位置经纬度

121 篇文章 64 订阅 ¥119.90 ¥299.90
69 篇文章 93 订阅 ¥69.90 ¥99.00
本文介绍了OpenLayers地图的鼠标点击事件监听,详细讲述了如何在点击地图后弹出框显示当前位置的WGS84坐标和度分秒格式的经纬度信息。通过在vue项目中集成OpenLayers,实现了地图的点击功能,并提供了代码实现和测试效果的演示。
摘要由CSDN通过智能技术生成

专栏目录:
OpenLayers入门教程汇总目录

前言

本章主要讲解OpenLayers地图点击事件的使用,以及监听地图点击事件后进行简单弹框并获取当前点击位置的经纬度并显示wgs84坐标位置和度分秒格式经纬度信息。
openlayers

二、依赖和使用

"ol": "^6.15.1"
  1. 使用npm安装依赖
npm install ol@6.15.1
  1. 使用Yarn安装依赖
yarn add ol

vue中如何使用&

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
首先,你需要在React项目中安装OpenLayers和Google Maps API: ``` npm install ol google-maps-react ``` 然后,在React组件中引入OpenLayers和Google Maps API: ```jsx import React, { Component } from 'react'; import Map from 'ol/Map'; import View from 'ol/View'; import TileLayer from 'ol/layer/Tile'; import OSM from 'ol/source/OSM'; import Overlay from 'ol/Overlay'; import 'ol/ol.css'; import { GoogleApiWrapper } from 'google-maps-react'; class MapContainer extends Component { constructor(props) { super(props); this.state = { map: null, google: null, marker: null, overlay: null, }; } componentDidMount() { const { google } = this.props; const map = new Map({ target: 'map', layers: [ new TileLayer({ source: new OSM(), }), ], view: new View({ center: [0, 0], zoom: 2, }), }); const marker = new Overlay({ element: document.getElementById('marker'), positioning: 'bottom-center', stopEvent: false, }); map.addOverlay(marker); this.setState({ map, google, marker }); } handleMapClick = (event) => { const { marker, map } = this.state; const coordinate = event.coordinate; marker.setPosition(coordinate); const pixel = map.getPixelFromCoordinate(coordinate); const features = map.getFeaturesAtPixel(pixel); if (features && features.length > 0) { const feature = features[0]; const content = feature.get('content'); marker.setOffset([0, -22]); marker.getElement().innerHTML = content; } else { marker.setOffset([0, 0]); marker.getElement().innerHTML = ''; } }; render() { const style = { width: '100%', height: '100%', }; return ( <div id="map" style={style} onClick={this.handleMapClick}> <div id="marker" /> </div> ); } } export default GoogleApiWrapper({ apiKey: 'YOUR_API_KEY', })(MapContainer); ``` 在上面的代码中,我们创建了一个`MapContainer`组件,它包含一个OpenLayers地图和一个Google Maps API。我们在`componentDidMount`生命周期方法中初始化地图和标记。 我们还创建了一个名为`handleMapClick`的事件处理程序,当用户单击地图时,它将显示一个标记,并在标记上显示一个悬浮框,其中包含与点击的特征相关联的内容。我们使用`getFeaturesAtPixel`方法获取单击位置的特征,并从特征中获取`content`属性的值。 最后,我们将`MapContainer`包装在`GoogleApiWrapper`组件中,并传递我们的Google Maps API密钥。这使我们可以轻松地在React应用程序中使用Google Maps API。 这只是一个简单的示例,你可以根据你的需求自定义它。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

汤姆猫不是猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值