在我们的应用中,许多标记被绘制在不同的位置,并且在某些情况下在某个缩放级别,标记彼此重叠.因此,当我点击标记时,我希望顶部标记onMarkerClick被触发,但是它会针对最后一个隐藏标记触发,即最后一个标记,后面没有标记.
你有什么建议我这样做?此外,我没有信息窗口,因此我true从onMarkerClick方法返回.
我有一个带有leafletJS的项目.例如,我在地图中有2个点(A,B).我将其显示为2个标记我必须绘制从A到B的折线.我移动了标记A,我想要标记A的折线头部与标记A匹配(移动后跟标记A).我怎样才能做到这一点?对不起,我的英语不好.非常感谢.
Truong M.
Marker marker = mMap.addMarker(markerOptions);
marker.setTag(poi.getKey());
marker.hideInfoWindow();
builder.include(marker.getPosition());
Run Code Online (Sandbox Code Playgroud)
这段代码正常,因为我把manuel作为manuel.我做了一切marker.tag().我使用哈希键来重新检查我的引脚.
mClusterManager.addItem() 我想用这个方法.但我也想拿标记标记.所以我不想添加到地图中Marker marker = mMap.addMarker(markerOptions);
我怎么解决这个问题?
我想解释更多细节.
public class PoiItem implements ClusterItem{
private final LatLng mPosition;
private String mTitle;
private String mSnippet;
private String tag;
private ResponsePoi pois;
public PoiItem(ResponsePoi poi,double lat, double lng,String tag) {
mPosition = new LatLng(lat, lng);
pois = poi;
mTitle = poi.getName();
mSnippet = poi.getAddress();
this.tag = tag;
}
private void setMyCluster(){
mClusterManager = new ClusterManager<PoiItem> (MainActivity.this,mMap);
mMap.setOnCameraIdleListener(mClusterManager);
mMap.setOnMarkerClickListener(mClusterManager);
}
setMyCluster();
for(HashMap.Entry<String, ResponsePoi> poi …Run Code Online (Sandbox Code Playgroud) 我正在使用MapBoxgl,我想添加几个标记.
这是我的index.html:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<link href=" /assets/css/bootstrap.min.css " rel="stylesheet" />
<link href=" /assets/css/mapbox-gl.css " rel="stylesheet" />
<link href=" /assets/css/main.css " rel="stylesheet" />
</head>
<body>
<div id="map"></div>
<script src="/assets/js/mapbox-gl.js"></script>
<script src="/assets/js/map-style.js"></script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
这是map-style.js:
var map = new mapboxgl.Map({
container: 'map',
center: [57.3221, 33.5928],
zoom: 5,
style: style
});
var geojson = {
type: 'FeatureCollection',
features: [{
type: 'Feature',
geometry: {
type: 'Point',
coordinates: [30.61, 46.28]
},
properties: {
title: 'point 1',
description: 'point 1 Description', …Run Code Online (Sandbox Code Playgroud) 我对SVG和d3.js有点新.
在绘制具有D3力布局的图形时,我使用简单的对角线生成器并使用标记端绘制箭头.
当使用弧而不是对角线发生器时,箭头看起来很好.但是在下面的代码中使用对角线生成器不会生成正确的标记:
var vis = this.vis = d3.select(el).append("svg:svg")
.attr("width", w)
.attr("height", h);
var force = d3.layout.force()
.gravity(0.03)
.distance(120)
.charge(-800)
.size([w, h]);
var linkDiag = d3.svg.diagonal()
.projection(function(d)
{
return [d.x, d.y];
});
vis.append("svg:defs")
.selectAll("marker")
.data(["normal", "special", "resolved"])
.enter()
.append("svg:marker")
.attr("id", String)
.attr("viewBox", "0 -5 10 10")
.attr("refX", 15)
.attr("refY", -1.5)
.attr("markerWidth", 6)
.attr("markerHeight", 6)
.attr("orient", "auto")
.append("svg:path")
.attr("d", "M 0,-5 L 10,0 L0,5");
Run Code Online (Sandbox Code Playgroud)
......然后还:
force.on("tick", function() {
link.attr("x1", function(d) { return d.source.x; })
.attr("y1", function(d) { return d.source.y; })
.attr("x2", …Run Code Online (Sandbox Code Playgroud) 我正在制作一个关于在挪威遇害的骑车人的网站.对于我的项目,我一直在使用谷歌地图api v3,但我对javascript有着模糊的熟悉.您可以在此处查看我的结果:http://salamatstudios.com/googlemapstest/
基本上我想在每个标记上都有多个带有infowindows的标记.每个infowindows将包含:姓名(年龄),位置,死亡日期,阅读更多(将链接到网站本身的页面).
就像这个例子:http://salamatstudios.com/bicycles/
我尝试使用一个标记和infowindow,并且工作得很好.当我想添加带有自定义信息窗口的新标记时,我就会卡住.目前,我在第一个链接中看到了不同位置的3个标记,但是当我单击标记时,没有任何信息窗口出现.
如何绕过它来编码它以便出现信息?我怎样才能在每个infowindow中都有自定义文本?完成后,我将在地图上有大约30-40个标记.所有信息窗口都有不同类型的信息.
function initialize() {
var mapOptions = {
center: new google.maps.LatLng(65.18303, 20.47852),
zoom: 5,
mapTypeId: google.maps.MapTypeId.ROADMAP,
// MAP CONTROLS (START)
mapTypeControl: true,
panControl: true,
panControlOptions: {
position: google.maps.ControlPosition.TOP_RIGHT
},
zoomControl: true,
zoomControlOptions: {
style: google.maps.ZoomControlStyle.LARGE,
position: google.maps.ControlPosition.LEFT_TOP
},
streetViewControl: true,
streetViewControlOptions: {
position: google.maps.ControlPosition.LEFT_TOP
},
// MAP CONTROLS (END)
};
var map = new google.maps.Map(document.getElementById("map"),
mapOptions);
// -------------- MARKER 1
var marker1 = new google.maps.Marker({
position: new google.maps.LatLng(59.96384, 11.04120), …Run Code Online (Sandbox Code Playgroud) 我正在使用GMap.NET代码来处理地图和标记.添加标记并对地图执行任何操作都不是从地图中删除单个标记的问题.我在Google上到处研究过从地图上删除标记,但删除标记似乎不是一个热门话题.
这是我用来添加的代码的片段.
private void AddMarker_ButtonClick(object sender, AddMarkerEventArgs e)
{
DBDictAdd("Marker", " ",e.Latitude, e.Longitude, true, "192.168.1.1");
m_dbMarkers.Insert(_table, dbmarkertable);
dbmarkertable.Clear();
GMarkerGoogle marker = new GMarkerGoogle(new PointLatLng(e.Latitude, e.Longitude),
GMarkerGoogleType.green);
marker.ToolTip = new GMapRoundedToolTip(marker);
marker.ToolTipMode = MarkerTooltipMode.OnMouseOver;
marker.Tag = MarkerIndex;
marker.ToolTipText = (marker.Position.ToString());
markersOverlay.Markers.Add(marker);
MarkerIndex++;
}
Run Code Online (Sandbox Code Playgroud)
如您所见,我正在使用SQLite将数据ID和其他信息存储到数据库中以供标记使用.我正在使用数据库方法,因为我需要使用标记位置存储更多信息.这部分代码有效.
我遇到的问题是调用标记信息,所以我可以删除它.我知道这两个电话存在.
markersOverlay.Markers.Remove();
markersOverlay.Markers.RemoveAt();
Run Code Online (Sandbox Code Playgroud)
我已经使用了该removeAt命令,但我必须手动完成,并注意到使用该removeAt(0)命令每次从该数组的第一个条目获取它.
这是我到目前为止所尝试的:
private void uxRemoveMarkerButton_Click(object sender, EventArgs e)
{
MessageBox.Show("Select the marker to remove.");
uxGmap.OnMarkerClick += new MarkerClick(uxGmap_OnMarkerClick);
}
private void uxGmap_OnMarkerClick(object sender, EventArgs e)
{ …Run Code Online (Sandbox Code Playgroud) 我目前正在使用react-google-maps构建一个谷歌地图API,我想创建多个标记来在信息窗口上显示世界各地城市的信息。但由于它们都是来自 html 对象。每当我单击一个标记时,所有信息窗口都会打开。如果有办法解决这个问题吗?示例代码:
<GoogleMap
defaultZoom={3}
defaultCenter={{ lat: 40.452906, lng: 190.818206 }}
>
<Marker id = "mark1"
options={{icon: Mark1}}
position={{ lat: 34.4076645, lng: 108.742099 }}
onClick={props.onToggleOpen}
>
{props.isOpen && <InfoWindow id = "info1"
onCloseClick={props.onToggleOpen}
>
<div> content1 </div>
</InfoWindow>}
</Marker>
<Marker
options={{icon: Mark2}}
position={{ lat: 35.6958783, lng: 139.6869534 }}
onClick={props.onToggleOpen}
>
{props.isOpen && <InfoWindow
onCloseClick={props.onToggleOpen}
>
<div> content2 </div>
</InfoWindow>}
</Marker>
</GoogleMap>
Run Code Online (Sandbox Code Playgroud) 我尝试了我在网上找到的所有东西,Stackoverflow和Github,我仍然无法做到.
我想用自定义图标制作自定义标记,但是我的代码总是出现错误:'TypeError:options.icon.createIcon不是函数'
这是我的代码(文件夹路径没有错误,一切都在src/js或src/img中)
Icon.js
import L from 'leaflet';
const iconPerson = L.Icon.extend({
options: {
iconUrl: require('../img/marker-pin-person.svg'),
iconRetinaUrl: require('../img/marker-pin-person.svg'),
iconAnchor: null,
popupAnchor: null,
shadowUrl: null,
shadowSize: null,
shadowAnchor: null,
iconSize: new L.Point(60, 75),
className: 'leaflet-div-icon'
}
});
export { iconPerson };
Run Code Online (Sandbox Code Playgroud)
MarkerPinPerson
import React from 'react';
import { Marker } from 'react-leaflet';
import { iconPerson } from './Icons';
export default class MarkerPinPerson extends React.Component {
render() {
return (
<Marker
position={this.props.markerPosition}
icon={ iconPerson }
>
</Marker>
);
}
}
Run Code Online (Sandbox Code Playgroud)
真的在寻求你的帮助!
I want to use ArUco to find the "space coordinates" of a marker.
I have problems understanding the tvecs and rvecs. I came so far as to the tvecs are the translation and the rvecs are for rotation. But how are they oriented, in which order are they written in the code, or how do I orient them?
Here is a little sketch of the setup. I have a camera (laptop webcam just drawn to illustrate the orientation of …
marker ×10
android ×2
google-maps ×2
infowindow ×2
leaflet ×2
aruco ×1
c# ×1
click ×1
d3.js ×1
dictionary ×1
force-layout ×1
gmap.net ×1
html ×1
icons ×1
javascript ×1
mapbox ×1
mapbox-gl-js ×1
maps ×1
opencv ×1
orientation ×1
overlap ×1
polyline ×1
python ×1
reactjs ×1
sqlite ×1
svg ×1