是否可以确定给定标记的像素坐标,同时考虑到地图的当前缩放级别和可见区域?
我在javascript中创建了一个标记,如下所示:
var marker = document.createElementNS(SVG.ns, "marker");
marker.setAttribute("markerWidth", "3");
marker.setAttribute("markerHeight", "3");
marker.setAttribute("id", "mkrCircle");
marker.setAttribute("viewBox", "0 0 12 12");
marker.setAttribute("orient", "auto");
marker.setAttribute("stroke", "#000000");
marker.setAttribute("stroke-width", "2");
marker.setAttribute("fill", "#ffffff");
marker.setAttribute("refX", "12");
marker.setAttribute("refY", "6");
var mkrContent = document.createElementNS(SVG.ns, "circle");
mkrContent.setAttribute("r", "5");
mkrContent.setAttribute("cx", "6");
mkrContent.setAttribute("cy", "6");
marker.appendChild(mkrContent);
defs.appendChild(marker); // <-- defs is svg defs element
Run Code Online (Sandbox Code Playgroud)
我用它作为一条路:
<path marker-mid="url(#mkrCircle)" d="M0,0L100,100" stroke-width="3"></path>
Run Code Online (Sandbox Code Playgroud)
但它根本没有出现在路径上,为什么?
提前致谢
我对标记簇的信息窗口的位置有疑问。它不会出现在标记位置。相反,它位于地图的左上角。这是我的代码:
\n\n<script type="text/javascript">\n function initialize(cities) {\n var mapOptions = {\n center: new google.maps.LatLng(48.220, 15.199),\n zoom: 9,\n mapTypeId: google.maps.MapTypeId.ROADMAP,\n };\n\n var map = new google.maps.Map(document.getElementById("map"), mapOptions);\n var markers=[];\n var markerCluster = new MarkerClusterer(map, markers, {zoomOnClick: false});\n\n //markerCluster should be always above the geocoder-->\n geocoder = new google.maps.Geocoder();\n\n for (var i = 0; i < cities.length; i++) {\n var city = cities[i];\n geocoder.geocode({\'address\': city.city+" Nieder\xc3\xb6sterreich"}, function(results, status){\n if (status == google.maps.GeocoderStatus.OK) {\n position=results[0].geometry.location;\n var marker = new google.maps.Marker({\n map: map,\n position: …Run Code Online (Sandbox Code Playgroud) javascript google-maps google-maps-api-3 marker markerclusterer
我正在使用OSMbonuspack创建标记并希望添加带有单独行的描述。但是,普通的换行符 ( \n) 不起作用。所以我想知道是否有可能做到这一点。但这似乎是一件很常见的事情,所以我希望有可能这样做。我尝试了以下代码,但换行符无效:
Marker playgroundMarker = new Marker(mapView);
playgroundMarker.setPosition(new GeoPoint(latitude, longitude));
playgroundMarker.setTitle(title);
playgroundMarker.setSubDescription("first line\nsecond line");
Run Code Online (Sandbox Code Playgroud)
这导致以下描述:first line second line而不是:
first line
second line
Run Code Online (Sandbox Code Playgroud)
目前我唯一的解决方案是将描述一分为二。使用第一部分作为片段 ( playgroundMarker.setSnippet(...)) 和第二部分作为描述 (playgroundMarker.setSubDescription(...) )。但应该有更好的方法。
有任何想法吗?
我的 python matplotlib 散点图中有以下标记:
由代码制作:
plt.scatter(x,y,c=z,cmap=cm.bwr,marker='X',s=800,linewidth=1,edgecolor='k')
Run Code Online (Sandbox Code Playgroud)
我希望 X 的尺寸相同,但我希望红色部分“更薄”。我猜更像是一个真正的“X”。
这可能吗?
谢谢。
加载地图时,所有汉堡/标记都是可见的(我故意设置缩放以考虑该区域中的所有汉堡。)出于某种原因,当我在地图上平移或放大/缩小时,汉堡/标记跟随平移并脱离地图的边界/边缘。我尝试使用默认标记并删除以编程方式将弹出窗口添加到标记的脚本。我将在这里发布一些相关代码。
您可以看到汉堡不仅出现在地图之外,而且在移动时拉伸了窗口的宽度。
超文本标记语言
<div class="content">
<div class="story-list"></div>
<div class="story-map">
<div class="story-map-container" id="story-map-container"></div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
CSS
.content {
padding: 6.5%;
width: 87%;
background-image: url("../media/images/temp-gradient-low.jpg");
background-repeat: no-repeat;
background-size: cover;
background-position: center;
}
/* story-list */
.story-list {
display: inline-block;
position: relative;
width: 66%;
z-index: 1;
vertical-align: top;
font-size: 0;
padding-bottom: 1%;
}
/* story-map */
.story-map { /* using id='' in order to override the position set by mapbox*/
/*background-color: white;*/
display: inline-block;
position: sticky;
top: 0;
width: 33%;
height: 100vh;
/*padding-left: …Run Code Online (Sandbox Code Playgroud) 地理编码后,我无法将我的 Google 地图放在标记上。
我有两个标记:初始标记(一个居中,不改变),另一个根据地理编码而变化,地理编码后,每次都以中心为中心。
我的代码:TS
zoom = 10;
addressData: FormGroup;
submitted = false;
success = false;
lat: number;
lng: number;
userLat: number;
userLng: number;
currentCenter = { lat: null, lng: null };
private geoCoder: google.maps.Geocoder;
@ViewChild('googleMap') googleMap: AgmMap;
constructor(private maps: MapsAPILoader, private bulider: FormBuilder) { }
ngOnInit() {
this.addressData = this.bulider.group({
address: ["", Validators.required],
});
this.maps.load().then(() => {
this.geoCoder = new google.maps.Geocoder();
});
}
getAddress() {
this.submitted = true;
if (this.addressData.invalid) {
return;
}
this.success = true;
this.googleMap.mapReady.subscribe(map => …Run Code Online (Sandbox Code Playgroud) 我在传单地图上创建了一些标记,但唯一的问题是我不知道如何在每个标记下方添加文本,而且我不是在谈论弹出窗口。我的意思是标记下方的文本必须是永久的。例如,印度标记下方的文字写着“印度”。我有一个我现在正在做的事情的例子:
var southWest = L.latLng(-89.98155760646617, -180), northEast = L.latLng(89.99346179538875, 180);
var bounds = L.latLngBounds(southWest, northEast);
var mymap = L.map('map', {
center: [20.594, 78.962],
maxBounds: bounds, // set max bounds for the world map
zoom: 4, // default zoom level when the web is initiated
zoomSnap: 0.25, // map's zoom level must be in multiple of this
zoomDelta: 0.25, // controls how much the map's zoom level will change after a zoom
minZoom: 3.25, // min zoom level the user can …Run Code Online (Sandbox Code Playgroud) 只是一个简单的问题,我在文档中找不到任何有用的内容plt.errorbar
我想用误差线绘制值:
import matplotlib.pyplot as plt
plt.errorbar(1, 0.25, yerr=0.1, uplims=True, lolims=True, fmt='o')
plt.show()
Run Code Online (Sandbox Code Playgroud)
但我希望误差线带有简单的水平线,而不是末端的箭头。plt.errorbar()但函数中没有“capmarker”或类似选项
我正在尝试在我的绘图上添加markeredgecolor(marker='.',并且我希望标记根据其特征被不同的颜色包围)。
我尝试对地理数据执行此操作:https ://python-graph-gallery.com/131-custom-a-matplotlib-scatterplot/
fig, ax = plt.subplots(figsize = (8,6))
df.plot(ax=ax,color='green', marker=".", markersize=250)
df2.plot(ax=ax,color='green', marker=".", markerfacecolor="orange", markersize=250)
Run Code Online (Sandbox Code Playgroud)
但是我收到这个错误:
AttributeError: 'PathCollection' object has no property 'markeredgecolor'
Run Code Online (Sandbox Code Playgroud)
您知道问题是什么以及该怎么办吗?
编辑 - 使用可重现的示例:
#Packages needed
import pandas as pd
import matplotlib.pyplot as plt
import geopandas as gpd
import shapely.wkt
#Creating GeoDataFrame df2
df2 = pd.DataFrame([shapely.wkt.loads('POINT (7.23173 43.68249)'),shapely.wkt.loads('POINT (7.23091 43.68147)')])
df2.columns=['geometry']
df2 = gpd.GeoDataFrame(df2)
df2.crs = {'init' :'epsg:4326'}
#Ploting df2
fig, ax = plt.subplots()
df2.plot(ax=ax,color='green', marker=".", markerfacecolor="orange")
Run Code Online (Sandbox Code Playgroud) marker ×10
javascript ×3
matplotlib ×3
python ×3
google-maps ×2
android ×1
angular ×1
coordinates ×1
css ×1
errorbar ×1
geolocation ×1
html ×1
leaflet ×1
mapbox-gl-js ×1
osmdroid ×1
pixel ×1
svg ×1