我正在尝试放置一个标记,但是当我这样做时,这个标记被放置在之前设置的一些标记之后(以及其他一些标记).我想将它设置在所有标记上,但我没有找到任何属性(如z-index)来实现这一点.
这是代码的一部分,我将标记设置在其他代码之后:
GMSMarker *marker = [[GMSMarker alloc] init];
marker.animated=YES;
marker.position = CLLocationCoordinate2DMake(lat, lon);
marker.map = mapView_;
Run Code Online (Sandbox Code Playgroud)
这就是结果:

是否有任何属性或方法将绿色标记放在所有蓝色标记上?我正在使用Google Maps SDK 1.3.0版.
代码: -
/**
* Update marker position and icon
*/
private void setMarker() {
synchronized (OBJ_LOCK) {
if (mLatitude != 0.0 || mLongitude != 0.0) {
mRotatedBitmap = rotateBitmap(mOriginalMarkerBitmap, mBearing);
if (mRotatedBitmap != null) {
mCurrentPositionIcon = BitmapDescriptorFactory
.fromBitmap(mRotatedBitmap);
mCurrentLocationMarker.position(new LatLng(mLatitude,
mLongitude));
mCurrentLocationMarker.icon(mCurrentPositionIcon);
mCurrentLocationMarker.anchor(0.5f, 0.5f);
if (currentMarker != null && mCurrentPositionIcon != null) {
currentMarker.setIcon(mCurrentPositionIcon);
currentMarker.setAnchor(0.5f, 0.5f);
currentMarker.setPosition(new LatLng(mLatitude,
mLongitude));
} else {
currentMarker = mGoogleMap
.addMarker(mCurrentLocationMarker);
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
logcat-
02-03 14:28:53.621: E/AndroidRuntime(28639): FATAL EXCEPTION: main
02-03 …Run Code Online (Sandbox Code Playgroud) 在我的Android应用程序中,我必须在我的GoogleMap中删除并重新添加一个代表我当前位置的群集项.但是当我运行这段代码时:
clusterMng.remove(myitem);
Run Code Online (Sandbox Code Playgroud)
我得到这个例外:
java.lang.UnsupportedOperationException: NonHierarchicalDistanceBasedAlgorithm.remove
not implemented.
Run Code Online (Sandbox Code Playgroud)
有人可以向我解释这意味着什么吗?我是否必须在外部库中重写一些ClusterManager.java方法?或者我可以简单地改变我的算法?
任何人都知道如何在Javascript中为图像(而不是地图)添加标记?
理想情况下,我想要一个处理程序,其行为类似于向地图添加标记 - 即onclick导致标记显示在单击的点上,并返回单击的点的x/y像素坐标.
这可能吗?
干杯理查德
我想问一下如何在imageView上实现或添加标记.我使用svglib渲染了一个SVG并使用了customImageView,这样我就可以缩放和平移图像.
这是我如何使用我的customImageView的代码
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
SVG svg;
switch (mNum) {
case 1:
svg = SVGParser.getSVGFromResource(getResources(), R.raw.t1);
break;
case 2:
svg = SVGParser.getSVGFromResource(getResources(), R.raw.t2);
break;
case 3:
svg = SVGParser.getSVGFromResource(getResources(), R.raw.t3);
break;
case 4:
svg = SVGParser.getSVGFromResource(getResources(), R.raw.t4);
break;
default:
svg = SVGParser.getSVGFromResource(getResources(),
R.raw.android);
}
View v = inflater.inflate(R.layout.hello_world, container, false);
View tv = v.findViewById(R.id.text);
imageView = (GestureImageView) v.findViewById(R.id.imageView1);
imageView.setStrict(false);
imageView.setStartingScale(lastScale);
// if(lastXPosition!=0 && lastYPosition!=0)
imageView.setStartingPosition(lastXPosition, lastYPosition);
// Log.i("tag",
// "lastXPosition" + lastXPosition);
// …Run Code Online (Sandbox Code Playgroud) 我目前正在使用图形可视化,我使用SVG和D3库.我的设计师问我是否可以将图表边缘的箭头放在对应于线条长度的80%的位置上.通过使用getPointAtLength方法,我能够实现第一部分 - 获得位置.
var svg = d3.select("body").append("svg")
.attr("width", 960)
.attr("height", 500)
var path = svg.append("path")
.attr("d", "M20,20C400,20,20,400,400,400")
.attr("fill", "none")
.attr("stroke", "black");
var pathEl = path.node();
var pathLength = pathEl.getTotalLength();
var pathPoint = pathEl.getPointAtLength(pathLength*0.5);
var point = svg.append("svg:circle")
.style("fill", "red")
.attr("r", 5)
.attr("cx", pathPoint.x)
.attr("cy", pathPoint.y);
Run Code Online (Sandbox Code Playgroud)
这是一个jsfidle示例
现在我想知道如何将箭头连接到相应方向的这个位置.更重要的是我如何才能这样做,这样我就可以在移动相关节点时更新图形的边缘.我还没有找到任何答案,"标记"的例子正在使用路径属性,如:style('marker-end',"url(#end-arrow)")
我有这个活动:
public class MapViewer extends Activity {
private GoogleMap map;
private Database db = new Database(this);
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mapviewer);
try {
map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
if (map != null) {
map.setMyLocationEnabled(true);
map.setMapType(GoogleMap.MAP_TYPE_NORMAL);
map.getUiSettings().setRotateGesturesEnabled(false);
this.addMerchantMarkers(new MarkerOptions());
}
} catch (NullPointerException e) {
e.printStackTrace();
}
}
public void addMerchantMarkers(MarkerOptions mo) {
SQLiteDatabase dbRead = db.getReadableDatabase();
Cursor result = dbRead.rawQuery("SELECT title, addr, lat, lon FROM users", null);
while(result.moveToNext()) {
map.addMarker(mo.position(new LatLng(result.getFloat(2), result.getFloat(3)))
.title(result.getString(0))
.snippet(result.getString(1))
);;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我改变了以下方式使用标记聚类: …
我想要的是这样的:

我得到的是这个:

那么如何将标记合并为一个标签?对于线条,对于线条,当然,你可以通过在使用相同的线型时不将标签分配给第二条线来实现它,但是对于标记,你不能,因为它们具有不同的形状.
我正在我的应用程序中实现一项功能,允许用户在地图上手动定位自己.所以我用一个引脚来表示它们的位置,让用户将它拖到它们当前所在的位置.简单的解决方案是setDraggable(true)在标记上使用,但这需要用户将标记保持3或5秒直到它可拖动.我认为这对许多用户来说使用该功能非常困惑.因此,我想要的是通过让用户立即拖动它们而不必暂时保持拖动来使拖动更具响应性 - 就像Foursquare的做法一样!

我该怎么做才能实现自己的拖动功能?如果您有任何建议,请帮助我,谢谢.
有没有办法根据某个值更改地图中的标记大小?
例如,如果我正在绘制单个城市的人口并且标记是一个圆圈,那么对于人口较多的城市,圆圈会更大。
我想知道是否有一个特定的功能,或者我是否可以向数据集添加一列,该列具有我想要绘制的每个纬度/经度的单独标记大小。
谢谢!