目前我使用StyledMarker图标(带有自定义颜色的默认气泡图标),但我看到一些网站使用更紧凑的"点"(点标记的图片).我的问题是,是否可以使用StyledMarker用点替换默认的气泡标记?如果没有,我该如何解决它(通过解决方案必须允许点的动态着色)?
我正在开发一款已经存在于iPhone上的Android应用程序.
在应用程序中,有一个Map活动(我计算过)大约800个标记,分为四组,由四种不同颜色的drawable标记.每组都可以打开或关闭.有关我在List中的标记的信息.我为每个组创建了一个mapOverlay,然后我将该叠加层附加到地图上.我坚信编码部分我做得很好.但无论如何我会附上我的代码......
问题是,我的Nexus One无法处理所有这些标记的地图.绘制500个标记大约需要15秒.然后当全部绘制时,地图不是很平滑.它有点难以缩放和导航.它可以做到,但经验很糟糕,我想看看是否可以在那里做些什么.我知道如果我避免使用String> Double转换,我可以节省一些时间,但我怀疑这会很重要.
iPhone似乎没有显示所有这些标记的问题.显示所有这些大约需要1-2秒,并且缩放和平移也不是那么糟糕.减速是显而易见但仍然可以接受.我个人认为绘制所有这些标记并不好,但app是由其他人设计的,我不应该做出任何重大改变.
我不知道该怎么做.似乎我必须提出不同的功能,如果已知可能使用GPS位置,并且只在某个半径范围内绘制标记,或者,如果位置未知,则使用屏幕中心(地图)并在其周围绘制标记.如果我做出这些改动,我必须对我的老板有合理的解释.
如果有人有任何idas我很感激.
和代码:
List<Overlay> mapOverlays = mapView.getOverlays();
Drawable drawable = this.getResources().getDrawable(R.drawable.pin_blue);
drawable = this.getResources().getDrawable(R.drawable.pin_blue);
ArrList = appState.GetSleepArrList();
ItemizedOverlay itemizedoverlay = new ItemizedOverlay(drawable, this);
...
...
for (int m = 0; m < ArrList.size(); m++) {
tName = ArrList.get(m).get("name").toString();
tId = ArrList.get(m).get("id").toString();
tLat = ArrList.get(m).get("lat").toString();;
tLng = ArrList.get(m).get("lng").toString();;
try {
lat = Double.parseDouble(tLat);
lng = Double.parseDouble(tLng);
p1 = new GeoPoint(
(int) (lat * 1E6),
(int) (lng * 1E6));
OverlayItem overlayitem = new OverlayItem(p1, tName, tId); …Run Code Online (Sandbox Code Playgroud) 我试图以下列方式使用集合:
static Set<String> languages = new HashSet<String>();
languages.add("en");
languages.add("de");
Run Code Online (Sandbox Code Playgroud)
我收到Eclipse生成的以下错误消息:
> Multiple markers at this line
> - Syntax error on token ""en"", delete this token
> - Syntax error on token(s), misplaced construct(s)
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚我做错了什么.有人可以帮帮我吗?
我有这个代码工作正常,但我需要只显示图标,而不是带有阴影的"气球".
我尝试删除" markerColor...",但这只是更改为默认的蓝色标记/气球.
如何只显示图标及其大小和颜色?
pointToLayer: function(feature, latlng) {
var con = feature.properties.concept;
var hub;
// icons for XX, YY and ZZ
if (kon === 'XX') {
hub = new L.marker(latlng, {icon: L.AwesomeMarkers.icon({icon: 'truck', prefix: 'fa', markerColor: 'cadetblue'}) });
} else if (kon === 'YY') {
hub = new L.marker(latlng, {icon: L.AwesomeMarkers.icon({icon: 'envelope', prefix: 'fa', markerColor: 'blue'}) });
} else if (kon === 'ZZ') {
hub = new L.marker(latlng, {icon: L.AwesomeMarkers.icon({icon: 'bicycle', prefix: 'fa', markerColor: 'darkblue'}) });
} else { …Run Code Online (Sandbox Code Playgroud) 我不确定如何在 Plotly 散点图中自定义散点图标记样式。
具体来说,我有一列predictions是 0 或 1(1 表示意外值),即使我使用symbolpx.scatter_3d 中的参数通过不同的点形状(菱形为 1,圆形为 0)来指示意外值,但差异非常微妙,我希望它更具戏剧性。我正在设想类似下面的东西(不需要完全是这个),但是沿着菱形点的线的东西有不同的轮廓颜色或它周围的附加形状/气泡。我该怎么做?
此外,我有一set列可以采用两个值之一,设置 A 或设置 B。我在里面使用了颜色参数px.scatter_3d并将set其设置为等于,以便根据它来自哪个设置对点进行着色。当它按照我的要求做时,我不希望颜色是蓝色和红色,而是我指定的任何两种颜色。我怎么能做到这一点(假设我希望颜色为蓝色和橙色)?非常感谢!
这是我使用的代码:
fig = px.scatter_3d(X_combined, x='x', y='y', z='z',
color='set', symbol='predictions', opacity=0.7)
fig.update_traces(marker=dict(size=12,
line=dict(width=5,
color='Black')),
selector=dict(mode='markers'))
Run Code Online (Sandbox Code Playgroud) 我搜索了谷歌,每个人都说它不受支持.我想知道是否有任何开放的社区matlab函数能够将用户定义的png绘制为标记.我找到的最近的是 http://de.mathworks.com/matlabcentral/fileexchange/39487-custom-marker-plot/content/plotCustMark/plotCustMark.m.但它不符合预期目的.让我知道我是否有可能为此写点什么!谢谢.
附加问题:好吧,我现在有这个奇怪的问题.我的png有黑色背景!! 我不明白为什么.我试图降低alpha值仍然无法正常工作.
解决方案:我在@brainkz的评论中提到的问题可以解决
方法:导入图像的透明度设置
[marker,map,transperancy ] = imread('car.png');
Run Code Online (Sandbox Code Playgroud)
然后设定
handleIm = imagesc([x_low x_high], [y_low y_high], marker)
set(handleIm ,'AlphaData',transperancy);
Run Code Online (Sandbox Code Playgroud)
澄清:图像都是透明的,但由于我将其覆盖在另一个图像上,因此将当前图像背景变为默认黑色.我发布了这个问题的解决方案,我想这对很多人都很有用.
据我所知,我的问题与这篇文章密切相关。
我需要绘制一些标记大小与轴值严格成比例的数据。(已经在这里问过这个问题)。
我的方法如下:
transData.transform获取这两个点的像素值s=(size*dist_to_pix_ratio)**2,但这现在并不重要。)问题是:当我完全按照我所描述的操作时,我得到 y 轴和 x 轴像素数的两个不同值。
这是一个最小的代码:
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(7,7))
ax1 = fig.add_subplot(111, aspect='equal')
#setting up an empty scatterplot for pixel reference
xedges=[0.0, 1.0]
yedges=[0.0, 1.0]
emptyscatter=ax1.scatter(xedges, yedges, s=0.0)
#set axes limits
ax1.set_xlim(0.00,1.00)
ax1.set_ylim(0.00,1.00)
# Calculating the ratio of pixel-to-unit
upright = ax1.transData.transform((1.0,1.0))
lowleft = ax1.transData.transform((0.0,0.0))
x_to_pix_ratio = upright[0] - lowleft[0]
y_to_pix_ratio = upright[1] - lowleft[1]
print x_to_pix_ratio, …Run Code Online (Sandbox Code Playgroud) 当我有 3 种类型的点由预测确定时,我绘制高斯混合的结果。我对预测的每个簇都有不同的颜色,现在我想要有不同的标记而不是颜色。
colors=['pink' if i==0 else 'skyblue' if i==1 else 'lightgreen' for i in resultGM]
markers=['c' if i==0 else 'o' if i==1 else 'D' for i in resultGM]
ax=plt.gca()
ax.scatter(datas[:, 0], datas[:, 1], alpha=0.8, c=colors, marker=markers)
plt.title("Calling " + name_snp)
plt.xlabel('LogRatio')
plt.ylabel('Strength')
plt.show()
Run Code Online (Sandbox Code Playgroud)
它非常适合这样的颜色:
但我不能用不同的标记做同样的事情,它不能识别标记列表。
我怎样才能(0,1,2)像颜色一样为每个簇使用不同的标记?
在pytest中,您可以使用标签来标记测试用例。
@pytest.mark.windows
def test_will_fail():
assert False
Run Code Online (Sandbox Code Playgroud)
现在上面的测试用例标有标签“windows”。运行 pytestpytest -m windows将仅执行标有“windows”标签的测试用例。
但如果我想应用多个标签怎么办?例如,我想用“windows”和“smoke”标记上面的测试用例。我该怎么做呢?(我在 pytest 文档中没有看到相关示例。)
如果我想开发一个仅适用于 Linux 和 macOS 的 Python 包。如何在 Python Poetry 中指定此限制?
markers ×10
python ×4
matplotlib ×2
android ×1
dependencies ×1
eclipse ×1
font-awesome ×1
java ×1
javascript ×1
leaflet ×1
map ×1
matlab ×1
plot ×1
plotly ×1
pytest ×1
scatter-plot ×1
size ×1
tagging ×1
tags ×1