我这里有一张地图: http: //abehandler.github.io/(用 D3 和 Leaflet 创建)
该地图具有填充属性设置为红色或蓝色的 SVG 元素。但它显示出三种颜色:红、蓝、紫。我注意到,如果我将填充不透明度设置为 1,那么地图上的多边形就有正确的阴影。但如果我开始将填充不透明度更改为小于 1,则多边形的阴影开始发生变化。
我想要半透明的多边形——但我不想改变阴影。为什么改变不透明度会改变阴影?我怎样才能防止这种情况发生?
我想在传单地图上设置标记。为了实现这一点,我尝试了jquery-mobile-events并取得了小小的成功。这就是我集成它的方式:
$(map).off('taphold');
$(map).bind('taphold', function(e, options){
... do something ...
});
Run Code Online (Sandbox Code Playgroud)
它可以在桌面上运行,但不能在移动设备上运行。'map' 是一个 L.map 对象。与之相关的另一个问题是我无法获取 options.startPosition 和 options.endPosition。我需要这个来区分用于平移地图的长按和用于放置标记的长按。有谁知道这个问题的解决方案吗?
第一次尝试使用传单地图......
想知道如何向传单的弹出窗口添加链接?
我尝试过做这样的事情:
var marker = L.marker([34.063298, -118.280126]) .addTo(map).bindPopup("<b>Blah blah Village</b><a href="http://www.cnn.com">Test</a>").openPopup();
Run Code Online (Sandbox Code Playgroud)
显然,这是行不通的。
如何添加简单的链接?甚至是图像?
谢谢。
我正在尝试在 R leaflet 包中添加 WMS 切片 - 使用此示例 geoserver WMS 不是问题:
leaflet() %>% addTiles() %>% setView(-93.65, 42.0285, zoom = 4) %>% addWMSTiles(
"http://sedac.ciesin.columbia.edu/geoserver/wms",
layers = "energy:energy-pop-exposure-nuclear-plants-locations_plants",
options = WMSTileOptions(format = "image/png", transparent = TRUE),
tileOptions(tms = TRUE),
attribution = "")
Run Code Online (Sandbox Code Playgroud)
然而,当我尝试使用 National Map中的 WMS 时,尽管多次尝试正确设置 url 和图层的参数,但我仍然得到空的传单结果:
leaflet() %>% addTiles() %>% setView(-93.65, 42.0285, zoom = 4) %>%addWMSTiles(
"http://basemap.nationalmap.gov/arcgis/services/USGSHydroNHD/MapServer/WmsServer?",
layers = "0",
options = WMSTileOptions(format = "image/png", transparent = TRUE),
attribution = "")
Run Code Online (Sandbox Code Playgroud)
我之前没有在 R leaflet 包之外使用过 leaflet,所以在使用这种类型的 WMS 在 …
我试图在单击.append地图画布外的某些文本时调用函数。文档中的这个示例似乎有我正在寻找的内容,但我无法成功地将其应用到我的项目中。
我尝试过的代码:
var tiles = L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
maxZoom: 18,
attribution: '© <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
}),
latlng = L.latLng(60, -100);
var map = L.map('map', {center: latlng, zoom: 4, layers: [tiles]});
var progress = document.getElementById('progress');
var progressBar = document.getElementById('progress-bar');
function updateProgressBar(processed, total, elapsed, layersArray) {
if (elapsed > 1000) {
progress.style.display = 'block';
progressBar.style.width = Math.round(processed/total*100) + '%';
}
if (processed === total) {
progress.style.display = 'none';
}
}
var markers = L.markerClusterGroup({ chunkedLoading: true, chunkProgress: updateProgressBar }); …Run Code Online (Sandbox Code Playgroud) 我正在使用 LeafletJs 和 D3js 将条形图放入 Leaflet 弹出窗口中。
如何为每个民族栏指定自定义颜色?我想在 D3 代码中分配自定义颜色,因为我无法修改原始数据集。关联
谢谢。
var onEachFeature = function onEachFeature(feature, layer) {
colors = d3.scale.category20()
var div = $('<div id="chart"><h3>Ethnic Group Distribution</h3><svg/><h4>Additional details:</h4>Extra stuff here</div>')[0];
var popup = L.popup({
minWidth: 500,
minHeight: 350
}).setContent(div);
layer.bindPopup(popup);
var values = feature.properties;
var data = [{
name: "Pashtun",
value: values["Pashtun"]
}, {
name: "Tajik",
value: values["Tajik"]
}, {
name: "Uzbek",
value: values["Uzbek"]
}, {
name: "Turkmen",
value: values["Turkmen"]
}, {
name: "Hazara",
value: values["Hazara"]
}, { …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用传单在我的 reactjs 项目中添加地图,并希望在地图上显示车辆的位置。我为此做了一个示例用法。但是当我在地图上使用标记时,我看到了(正如你在这张图片中看到的):

标记的左上侧贴在我的位置。我想在我的位置中心看到标记的底部,就像圆圈一样。但我做不到。我阅读了 react-leaflet 文档,但没有看到相关参数。如果你帮助我,我很感激。谢谢
import React, { Component } from 'react'
import Leaflet from 'leaflet';
import { Map, CircleMarker, TileLayer, Marker, Popup } from 'react-leaflet'
import 'leaflet/dist/leaflet.css';
import icon from 'leaflet/dist/images/marker-icon.png';
import iconShadow from 'leaflet/dist/images/marker-shadow.png';
let DefaultIcon = Leaflet.icon({
iconUrl: icon,
shadowUrl: iconShadow
});
Leaflet.Marker.prototype.options.icon = DefaultIcon;
class SimpleExample extends React.Component {
constructor(props) {
super();
this.state = {
lat: 39.9653301,
lng: 32.7760817,
zoom: 5,
markerPoint: {
x: 320,
y: 192
}
};
this.refMap = React.createRef();
}
render() { …Run Code Online (Sandbox Code Playgroud) 我想问一下如何sf在传单中绘制对象,leaflet package我知道mapview package可以绘制它,但是我更喜欢使用 leafet 包。
我在下面提供了示例:
library(leaflet)
library(eurostat)
library(dplyr)
library(ggplot2)
options(readr.default_locale=readr::locale(tz="Europe/Berlin"))
df60 <- get_eurostat_geospatial(resolution = 60)
CE.sf <- df60 %>%
dplyr::filter(LEVL_CODE == 2 & CNTR_CODE %in% c("AT","CZ","DE","HU","PL","SK")) %>%
dplyr::select(NUTS_ID)
plot(CE.sf)
CE.sf %>%
ggplot() +
geom_sf(color = "black", size = 0.4)
CE = sf::as_Spatial(CE.sf)
leaflet() %>%
addProviderTiles("CartoDB.Positron") %>%
addPolygons(data= CE, color = "green")
Run Code Online (Sandbox Code Playgroud)
我需要从传单中的第 15 行重现情节,我在这里找到了一些想法:https : //gis.stackexchange.com/questions/239118/r-convert-sf-object-back-to-spatialpolygonsdataframe
但是,使用这种方法不起作用。
我正在使用 R 传单包生成地图。创建网页时,将网页的<title>元素设置为“leaflet”:
<title>leaflet</title>
Run Code Online (Sandbox Code Playgroud)
我想将其更改为内容更丰富的内容,但我看不出有什么方法可以做到这一点。我看过这里的讨论,但那是在地图本身上添加标题。我想做一些不同的事情:设置显示在浏览器选项卡顶部的标题。
有没有一种简单的方法可以使用传单或 htmltools 来做到这一点?