有什么方法可以将文本锚定或锁定到标记吗?当使用 提供的交互式缩放时pyplot,文本会超出范围,如图所示。
import matplotlib.pyplot as plt
x=[2,4]
y=[2,3]
fig, ax = plt.subplots()
ax.plot(x, y, 'ro',markersize=23)
offset = 1.0
ax.set_xlim(min(x)-offset, max(x)+ offset)
ax.set_ylim(min(y)-offset, max(y)+ offset)
for x,y in zip(x,y):
ax.annotate(str(y), xy=(x-0.028,y-0.028))
plt.show()
Run Code Online (Sandbox Code Playgroud)

我使用 Leaflet 绘制一个 OpenStreetMap 并使用自定义图标标记附加它
var mymap = L.map('mapid').setView([x, y], 13);
L.tileLayer('https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token={accessToken}', {
attribution: 'Map data © <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, <a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Imagery © <a href="http://mapbox.com">Mapbox</a>',
maxZoom: 18,
id: ID,
accessToken: accessToken
}).addTo(mymap);
var busIcon = new L.Icon({
iconUrl: 'images/marker/bus.png',
// shadowUrl: 'images/leaflet/marker-shadow.png',
iconSize: [12, 12],
iconAnchor: [12, 41],
popupAnchor: [1, -34],
// shadowSize: [41, 41]
});
var marker = L.marker([x, y],{icon:busIcon}).addTo(mymap);
mymap.on('zoomed', function() {
var currentZoom = mymap.getZoom();
busIcon = new L.Icon({
iconUrl: 'images/marker/bus.png',
iconSize: [mymap.getZoom*2, mymap.getZoom*2],
iconAnchor: [12, …Run Code Online (Sandbox Code Playgroud) 嘿,我正在尝试添加覆盖标记,即使我们滚动或缩放屏幕,它也会像这样保持在屏幕的中心
我尝试从其初始位置移动标记,但是当我们快速移动屏幕时它会落后。所以我想在屏幕中央设置标记图像
这是我为移动标记所做的代码:
componentDidMount: function() {
this.fetchData();
navigator.geolocation.getCurrentPosition(
(position) => {
this.setState({
region: {
latitude: position.coords.latitude,
longitude: position.coords.longitude,
latitudeDelta: LATITUDE_DELTA,
longitudeDelta: LONGITUDE_DELTA
}
});
},
);
this.watchID = navigator.geolocation.watchPosition((position) => {
const newRegion = {
latitude: position.coords.latitude,
longitude: position.coords.longitude,
latitudeDelta: LATITUDE_DELTA,
longitudeDelta: LONGITUDE_DELTA
}
this.onRegionChange(newRegion);
});
},
componentWillUnmount: function() {
navigator.geolocation.clearWatch(this.watchID);
},
onRegionChange(region) {
this.setState({ region });
},
Run Code Online (Sandbox Code Playgroud)
那么如何覆盖标记图像?
我想删除 Google 地图中的标记,但我不\xc2\xb4t 理解这一点。请帮我。
\n\n我的 Validation.js:
\n\nfunction initialize() {\n//geocodierungs Funktion damit Geocoding funktioniert\ngeocoder = new google.maps.Geocoder(); \nvar mapOptions = {\n zoom:5,\n center: new google.maps.LatLng(48.136607,11.577085),\n mapTypeId: google.maps.MapTypeId.ROADMAP\n};\nmap = new google.maps.Map(document.getElementById('map_canvas'), mapOptions);\n\nvar pos=new google.maps.LatLng(48.2,11);\nvar marker = new google.maps.Marker({\n position:pos,\n map:map,\n title: 'test'\n});} setInterval(function(){ \n //$.post('nav_schnittstelle.php',{}).done(aktualisiereKartendaten);\n alert('test');\n pos.setMap(null); },10000);\nRun Code Online (Sandbox Code Playgroud)\n\n我该如何使用setMap(Null);?我不明白这一点。
我想用我的可绘制图标更改默认集群组图标。请检查我的集群程序代码。
MyClusterRenderer.java
public class MyClusterRenderer extends DefaultClusterRenderer<MyItem> {
public MyClusterRenderer(Context context, GoogleMap map,
ClusterManager<MyItem> clusterManager) {
super(context, map, clusterManager);
}
@Override
protected void onBeforeClusterItemRendered(MyItem item, MarkerOptions markerOptions) {
super.onBeforeClusterItemRendered(item, markerOptions);
markerOptions.title("").icon(BitmapDescriptorFactory.fromResource(R.mipmap.location_both));// for marker
}
@Override
protected void onClusterItemRendered(final MyItem clusterItem, Marker marker) {
super.onClusterItemRendered(clusterItem, marker);
}
}
Run Code Online (Sandbox Code Playgroud)
我的片段中的代码用于设置集群
googleMap.clear();
mClusterManager = new ClusterManager<MyItem>(getActivity(), googleMap);
googleMap.setOnMarkerClickListener(mClusterManager);
googleMap.setOnCameraChangeListener(mClusterManager);
readItems();
mClusterManager.setRenderer(new MyClusterRenderer(getActivity(), googleMap, mClusterManager));
Run Code Online (Sandbox Code Playgroud) 我有一层 CircleMarkers,我试图只删除具有特定 layerId 的标记。这些圆形标记的 id 位于数据框中。
下面是一个简单的例子:假设我有一个包含 3 行 id 为 1、2 和 3 的数据框。我尝试创建一个带有删除 id 1、2 或 3 选项的 checkboxInput。
在输入下方将触发使用 removeMarker 函数的 ObserveEvent。然而,什么也没有发生。我已经尝试了一百万种方法将 id 输入到 removeMarker 中,我还尝试了其他几种删除方法。要么什么都没有发生,要么全部消失。我需要一种删除特定标记的方法。
ui <- shinyUI(fluidPage(
sidebarLayout(
sidebarPanel(
checkboxInput("delete1", "Delete ID=1 and 2",value=FALSE),
checkboxInput("delete3", "Delete ID=3",value=FALSE)
),
mainPanel(
leafletOutput("map")
)
)
))
df <- data.frame(id=c(1,2,3),lng = rnorm(3, -106.1039361, 0.5) ,
lat = rnorm(3, 50.543981, 0.5))
server <- shinyServer(function(input, output, session) {
output$map <- renderLeaflet(
leaflet() %>%
addTiles() %>% addCircleMarkers(layerId=df$id,df$lng,df$lat, group='marker', radius=2, fill = TRUE,color='red') …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用破折号和绘图生成散点图框,当我在标记内指定符号(例如“正方形”)时,生成地图时它不会呈现。我正在使用回调函数,并且尝试了几个符号,但没有一个有效,但圆圈标记除外。我是否缺少一些明显的东西?这是一个最小的示例,要运行它,您将需要一个 Mapbox 令牌。
import dash
import dash_core_components as dcc
import dash_html_components as html
import plotly.graph_objs as go
import datetime as dt
app = dash.Dash()
mapbox_access_token = 'YOUR_MAPBOX_TOKEN_HERE'
app.layout = html.Div(children=[
html.H1('Dashboard'),
dcc.DatePickerRange(id='fecha',
start_date=dt.datetime.today() - dt.timedelta(days=30),
end_date=dt.datetime.today()
),
html.Center(dcc.Graph(
id='mapa',
figure={
'data': [
go.Scattermapbox(
lat=[],
lon=[],
)
],
'layout': go.Layout(
autosize=False,
width=1300,
height=800,
hovermode='closest',
showlegend=False,
mapbox=dict(
accesstoken=mapbox_access_token,
bearing=0,
center=dict(
lat=-32,
lon=-70
),
pitch=0,
zoom=5,
),
)
})
,)
])
@app.callback(
dash.dependencies.Output('mapa', 'figure'),
[dash.dependencies.Input('fecha', 'start_date'),
dash.dependencies.Input('fecha', 'end_date')
])
def update_graph(inicio,fin):
Data = …Run Code Online (Sandbox Code Playgroud) 我用以下演示重现了这个问题:http : //jsfiddle.net/baoqger/deL0yuvg/9/
在我的项目中,我有一个自定义图标标记,我想在某些情况下旋转图标。
我在创建图标时添加了一个 claasname:
const uturnIcon = L.icon({
iconUrl: 'http://joshuafrazier.info/images/firefox.svg',
iconSize: [30, 30],
className: 'u-turn-icon'
})
Run Code Online (Sandbox Code Playgroud)
并为该类添加 css 样式,如下所示:
.u-turn-icon {
transform: rotate(20deg) !important
}
Run Code Online (Sandbox Code Playgroud)
问题是默认情况下,图标img有一个style属性transform: translate3d,所以默认的transform和我添加的transform样式有冲突。并且默认的变换样式是由传单本身创建的,当我们缩放地图时,该属性的值也会更新。
那么如何解决这个问题呢?
我使用了deck.gl@^6.4.7 和react-map-gl@^5.0.7,并且我放置了一个带有图标的标记,孩子正在监听点击事件。当我将deck.gl 更新到7.1.10 版时,图标的点击事件停止工作。
你知道如何解决这个问题吗?
<DeckGL
initialViewState={{
longitude: liveMapZoom.lng,
latitude: liveMapZoom.lat,
zoom: 12,
bearing: 0,
pitch: 0
}}
viewState={viewState}
onClick={(info, event) => {
console.log("info", info);
console.log("event", event);
}}
onViewStateChange={this._onViewStateChange}
controller={{ type: MapController, dragRotate: false }}
layers={[
layerCars(data)
]}
>
<ReactMapGL
mapStyle={"mapbox://styles/mapbox/streets-v9"}
mapboxApiAccessToken={TOKEN}
>
<Marker
key={key}
latitude={coordinates[1]}
longitude={coordinates[0]}
>
<img
alt={name}
src={iconUrl}
onClick={event => {
console.log("hey");
}}
/>
</Marker>
</ReactMapGL>
</DeckGL>
Run Code Online (Sandbox Code Playgroud) marker ×10
google-maps ×3
javascript ×3
leaflet ×3
android ×2
python ×2
annotate ×1
css ×1
deck.gl ×1
icons ×1
maps ×1
matplotlib ×1
onclick ×1
plotly ×1
plotly-dash ×1
r ×1
react-map-gl ×1
react-native ×1
reactjs ×1
shiny ×1
symbols ×1
text ×1
transform ×1
zooming ×1