openlayers 相关问题

OpenLayers是一个开源的Javascript Web映射库,用于创建Web地图应用程序。

mapbox瓷砖免费配额

我正在创建一个开放层脚本以使用form url的URL显示Mapbox图块

回答 0 投票 0

java.lang.runtimeException:java.lang.nullpoInterException with GeoServer,openlayer

地质器在投影EPSG中具有一层:4326。 查询是成功(投影EPSG:3857): http://域:8080/geoserver/agroupr/wms?service = wfs&request = getfeature&version&version = 1.1.0&

回答 0 投票 0

反射本地 +开放层无法调用JS功能

import { useAssets } from "expo-asset"; import { useContext, useEffect, useRef, useState } from "react"; import { useWindowDimensions } from "react-native"; import WebView from "react-native-webview"; import { Context } from "../App"; const Page = () => { const [assets] = useAssets([require("../assets/index.html")]); const [htmlString, setHtmlString] = useState<string>(); const pageDimensions = useWindowDimensions(); const webViewRef = useRef<WebView | null>(null); const [add, setAdd, swch] = useContext(Context); useEffect(() => { if (assets) { fetch(assets[0].localUri || "") .then((res) => res.text()) .then((html) => setHtmlString(html)); } }, [assets]); useEffect(() => { if (webViewRef.current) { console.log(swch) const functionToCall = swch ? "showMiddlemarker();" : "hideMiddlemarker();"; webViewRef.current.injectJavaScript(`${functionToCall}; true;`); } }, [swch]); if (!htmlString) { return null; } return ( <WebView ref={(r) => (webViewRef.current = r)} javaScriptEnabled source={{ html: htmlString, }} style={{ width: pageDimensions.width, height: pageDimensions.height, }} scrollEnabled={false} overScrollMode="never" showsHorizontalScrollIndicator={false} showsVerticalScrollIndicator={false} scalesPageToFit={false} containerStyle={{ flex: 1 }} onLoad={() => { webViewRef.current?.injectJavaScript(` function showMiddlemarker() { console.log("Showing marker"); markerElement.style.display = "block"; } function hideMiddlemarker() { console.log("Hiding marker"); markerElement.style.display = "none"; } true; `); }} /> ); }; export default Page;

回答 1 投票 0

如何在开放层中创建新的变焦按钮?

我创建了两个按钮(使用bootstrap)以缩放进出: <div class="btn-toolbar" id="buttontoolbar"> <div id="newSim", class="btn-group-vertical"> <button type="button" title="Zoom in", class="btn btn-default",id="olZoomOutLink"><img src="plus.svg"></button> <button type="button" title="Zoom out", class="btn btn-default", id="customZoomOut"><img src="minus.svg"></button> </div> </div> 我还关闭了打开层的默认缩放按钮: var map = new ol.Map({ controls: ol.control.defaults({ zoom: false, }) }) 现在我的问题是,如何使我的两个按钮用于缩放和缩放? thanks! 在HTML文件中创建HTML按钮后,您可以通过引用HTML的ID对每个控件添加一个控件。之后,请在地图上收听点击事件。 var zoomType; document.getElementById('customZoomOut').onclick = function() { zoomType="customZoomOut"; }; document.getElementById('olZoomOutLink').onclick = function() { zoomType="olZoomOutLink"; }; var map = new ol.Map({ target: 'map', layers: [new ol.layer.Tile({ source: new ol.source.OSM() })], view: new ol.View({ center: [0, 0], zoom: 2 }) }); map.on('click', function(evt) { if(zoomType=="olZoomOutLink"){ var view = map.getView(); var zoom = view.getZoom(); view.setZoom(zoom - 1); } if(zoomType=="customZoomOut"){ var view = map.getView(); var zoom = view.getZoom(); view.setZoom(zoom + 1); } }); <link rel="stylesheet" href="https://openlayers.org/en/v4.6.4/css/ol.css" type="text/css"> <!-- The line below is only needed for old environments like Internet Explorer and Android 4.x --> <script src="https://cdn.polyfill.io/v2/polyfill.min.js?features=requestAnimationFrame,Element.prototype.classList,URL"></script> <script src="https://openlayers.org/en/v4.6.4/build/ol.js"></script> <div class="btn-toolbar" id="buttontoolbar"> <div id="newSim" , class="btn-group-vertical"> <button type="button" title="Zoom in" class="btn btn-default" id="olZoomOutLink"><img src="plus.svg"></button> <button type="button" title="Zoom out" class="btn btn-default" id="customZoomOut"><img src="minus.svg"></button> </div> </div> 添加了OL和动画的较新版本。默认按钮的行为是不同的。因此,这是一个没有setZoom()的解决方案。这有点通用,因此请调整到您的框架 <button onclick="zoomTo(+1)">+</button> <button onclick="zoomTo(-1)">-</button> 和此功能 zoomTo(amount){ const view = map.getView(); const zoom = view.getZoom(); view.animate({ zoom: zoom + amount}) } 定义映射时禁用正常控件:new Map({ ... controls: [] }) 您可以通过动态调整视图缩放级别来在OpenLaylayers中创建自定义缩放按钮。下面的功能平稳地将缩放缩放为in或out: Solution: function onZoom(value: number): void { const view = map.getView(); if (!view) return; const currentZoom = view.getZoom() ?? 0; const newZoom = view.getConstrainedZoom(currentZoom + value); // Cancel any ongoing zoom animations to prevent conflicts if (view.getAnimating()) { view.cancelAnimations(); } // Custom easing function for smooth zooming const easeIn = (t: number) => 1 - Math.pow(1 - t, 3); // Animate the zoom transition view.animate({ zoom: newZoom, duration: 250, // Adjust duration as needed easing: easeIn, }); } usage: <button onClick={() => onZoom(+1)}>Zoom In</button> <button onClick={() => onZoom(-1)}>Zoom Out</button>

回答 3 投票 0

openlayer linestrings以显示最大linestring上的标签文本

目前,我需要在线条(一组林格)几何形状上显示标签,但只需要在标签的最大段上显示标签。 我试图将rulerObject的样式设置为 var

回答 2 投票 0

回答 1 投票 0

如果显示群集,如何显示功能量 在情况下,该点是集群的一部分(即它具有多个功能),我想显示功能数量。我曾经用vectorlayer这样做: const clustersource =新群集(...

const clusterSource = new Cluster({ distance: 50, minDistance: 10, source: source, }); const noClusterStyle = new Style({ image: new CircleStyle({ radius: 5, fill: new Fill({ color: '#ffcc33', }), }), }); const clusterStyle = new Style({ text: new Text({ fill: new Fill({ color: '#fff', }), }), }) const vectorLayer = new VectorLayer({ source: clusterSource, style: function (feature) { const size = feature.get('features').length; if (size > 1) { clusterStyle.getText().setText(size.toString()); return clusterStyle; } return noClusterStyle; }, });

回答 1 投票 0


OpenLayers 从 GPX 文件读取元数据

我正在使用 OpenLayers v10.3.1 显示 OpenStreetMap,顶部带有 GPX 派生矢量图层。 我使用 OpenLayers 文档中的 GPX 示例作为我的代码的基础,它可以工作...

回答 1 投票 0

在WKT中绘制多边形可以,但GML格式不行

使用 WKT 绘制简单的多边形在 Angular 18、Openlayers 10 中效果很好。无论我尝试什么,我都无法使用 GML 绘制任何内容。 这是有效的: 项目4.defs( 'EPSG:28992', '+proj=sterea +la...

回答 1 投票 0

Angular / Openlayers:在 WKT 中绘制多边形可以,但 GML 格式不行

使用 WKT 绘制简单的多边形在 Angular 18、Openlayers 10 中效果很好。无论我尝试什么,我都无法使用 GML 绘制任何内容。 这是有效的: 项目4.defs( 'EPSG:28992', '+proj=sterea +la...

回答 1 投票 0

如何在Cesium地图中创建任何位置3D瓦片图层

我想为铯地图创建我的位置 3D 图块图层。但如何创建我不知道,因为我是铯初学者。 所以任何人都知道如何为任何特定位置创建 3D 图块图层...

回答 2 投票 0

OL4停止传播

我在我的项目中使用 OL4,我有一个要素图层,我可以在其中单击并出现一个弹出窗口,我还使用一个绘图图层,在其中可以绘制标记(在示例中它只是一个点) 我的问题是...

回答 1 投票 0

TurfJs 交叉口问题

嗨,我正在尝试实现地图对象(街道区域),如果与其他街道区域相交,则会将它们弯曲。我已经实现了下一个逻辑:当区域绘制完成后,我尝试...

回答 1 投票 0

VueJS 3,什么原因导致TypeError: currentRenderingInstance is null

我希望将地图集成到现有的 vue3 项目中。使用 vue3-openlayers 的入门页面:https://vue3openlayers.netlify.app/get-started.html 我得到一个看起来像

回答 1 投票 0

如何将OpenLayers多边形坐标转换为经纬度?

我正在使用OpenLayers技术来绘制多边形并保存坐标。这是我的代码:- var raster = new ol.layer.Tile({ 来源:new ol.source.OSM() }); var s...

回答 2 投票 0

浮动标记(应固定位置)

我已经将标记/地图图钉设置为纬度 53.5788686 度,经度 -113.2774829 度。它应该位于加拿大艾伯塔省埃德蒙顿的 Via Rail 终点站(测试用例,没有......

回答 1 投票 0

OpenLayers React JSX 组件

我有以下使用 Openlayers 的 React 组件,它按预期工作: 从“反应”导入反应; 从 'react-redux' 导入 { connect } 从“prop-types”导入 PropTypes 导入 { 卡 }

回答 1 投票 0

带有“最新”API 密钥的 OpenLayers 和 HERE 地图不再工作

我使用 OpenLayers 6.11 是一个小项目,多年来成功访问 OpenStreetMap、CyclOSM、Bing 和 HERE Maps。 最近,有用户反映无法使用 HERE 地图。它...

回答 1 投票 0

在 Openlayers 中获取 XYZ 源的中心(或范围)

是否可以在 Openlayers 中获取 XYZ 源的中心(或范围)? (我不是在谈论获取视图的中心,而是获取源本身定义的地图的中心。)...

回答 1 投票 0

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.