这是一个专门针对Eclipse平台的插件开发的问题:
我想在右键单击一种IMarker时显示的默认菜单中添加一个菜单项(所有标记都是一个好的开始).
我在实现IMarkerResolution并在我的plugin.xml中引用它时取得了一些成功
<extension point="org.eclipse.ui.ide.markerResolution">
<markerResolutionGenerator
markerType="my.stuff.mymarker"
class="my.stuff.MyResolutionGenerator">
</markerResolutionGenerator>
</extension>
Run Code Online (Sandbox Code Playgroud)
但不是通过eclipse快速修复功能访问我的代码,我想添加自己的菜单文本而不是"快速修复",而不必显示快速修复选项旁边的操作.通过(双击)标记来运行动作也是非常有用的.
我正在使用eclipse 3.5.2来完成我当前的项目.
提前致谢!
更新我已解决此问题:
<extension point="org.eclipse.ui.menus">
<menuContribution
class="my.stuff.MarkerContributionFactory"
locationURI="popup:#AbstractTextEditorRulerContext?after=additions">
<dynamic
class="my.stuff.MarkerMenuContribution"
id="my.stuff.MarkerMenuContribution">
</dynamic>
</menuContribution>
</extension>
public class MarkerContributionFactory extends ExtensionContributionFactory{
@Override
public void createContributionItems(IServiceLocator serviceLocator, IContributionRoot additions){
ITextEditor editor = (ITextEditor)
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActivePart();
additions.addContributionItem(new MarkerMenuContribution(editor), null);
}
}
public class MarkerMenuContribution extends ContributionItem{
private ITextEditor editor;
private IVerticalRulerInfo rulerInfo;
private List<IMarker> markers;
public MarkerMenuContribution(ITextEditor editor){
this.editor = editor;
this.rulerInfo = getRulerInfo();
this.markers = getMarkers();
}
private IVerticalRulerInfo getRulerInfo(){
return …Run Code Online (Sandbox Code Playgroud) 如何在标记工具提示的文本中插入换行符.我正在使用\n哪个似乎不起作用.
见下面的代码:
mark = new google.maps.Marker({
map: map,
position: center,
title:inspStates[i].name+ "\n"+"total: "+inspStates[i].totalInsp+ "\n"+ info,
zIndex:3
});
Run Code Online (Sandbox Code Playgroud) 在桌面浏览器中,使用鼠标单击拖放操作都可以正常工作,但不能用于触摸屏.在移动(平板电脑和手机)浏览器中启用拖动标记需要做些什么?
map = new google.maps.Map(document.getElementById('map_canvas'),
mapOptions);
google.maps.event.addListener(map, 'center_changed', function() {
window.setTimeout(function() {
map.panTo(marker.getPosition());
}, 3000);
});
marker = new google.maps.Marker({
map:map,
draggable: true,
animation: google.maps.Animation.DROP,
position: parliament,
icon: psrimage
});
Run Code Online (Sandbox Code Playgroud) 我知道之前已经讨论过,但实际上我找不到解决方案.
我正为我的标记添加自定义图标:
markerUserLocation = mMap.addMarker(new
MarkerOptions().position(new
LatLng(point.latitude,
point.longitude))
.anchor(0.5f, 1.0f)
.icon(BitmapDescriptorFactory.fromResource(R.drawable.ic_marker_my_location)));
Run Code Online (Sandbox Code Playgroud)
问题是当放大/缩小标记位于不好的位置时.
我试图玩锚值,但没有成功.不是图像中间/底部的默认锚点吗?我需要做什么,实际上将标记的底部保持在指定的点坐标,与缩放级别无关?
这是一个ic_marker_my_location图标示例(xhdpi大小),因为我无法上传原始图标.

LE:这是一个非常愚蠢的,但如果我使用较小的标记图像......它可以正常工作......那么标记资源图像大小可能存在错误?或者如果图像更大,我需要设置一些额外的参数?
嘿,我正在尝试添加覆盖标记,即使我们滚动或缩放屏幕,它也会像这样保持在屏幕的中心
我尝试从其初始位置移动标记,但是当我们快速移动屏幕时它会落后。所以我想在屏幕中央设置标记图像
这是我为移动标记所做的代码:
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)
那么如何覆盖标记图像?
我想用我的可绘制图标更改默认集群组图标。请检查我的集群程序代码。
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) 我用以下演示重现了这个问题: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)