【问题标题】:Arcgis Map : PictureMarkerSymbolArcgis 地图:PictureMarkerSymbol
【发布时间】:2013-11-24 03:01:24
【问题描述】:

大家好,我正在尝试在我的 arcgis 地图中制作 PictureSymbolMarker。 但是我在其中面临一些问题。我去了 esri 网站 [http://blogs.esri.com/esri/arcgis/2012/02/03/esri-picture-marker-symbol-generator-for-javascript-developers/] 获取 pin url。

当我尝试在我的代码中实现它时, 我收到错误。

这就是我把它放在一起的方式

来自

`//Marker
SimpleMarkerSymbol resultSymbol = new SimpleMarkerSymbol(Color.RED,
                20, SimpleMarkerSymbol.STYLE.CIRCLE);`

  `SimpleMarkerSymbol resultSymbol = new SimpleMarkerSymbol
 ({"angle":0,"xoffset":0,"yoffset":12,"type":"esriPMS",
 "url":"http://static.arcgis.com/images/Symbols/Basic/RedStickpin.png",
  "contentType":"image/png","width":24,"height":24});`

但在实施该代码后,我收到了错误。 .. 任何人都面临同样的问题并能够解决它?

提前致谢

【问题讨论】:

  • 您实际使用 LocationService 的代码在哪里?查看 API 文档,.start() 只是启动服务。是否需要致电.setSymbol() 告诉服务如何绘制您的红点?
  • 由于类型是 esriPMS 尝试将 Symbol 定义为 PictureMarkerSymbol

标签: java android arcgis esri


【解决方案1】:

您的问题是您将 JSON 用于 PictureMarkerSymbol 并初始化一个永远不会工作的 SimpleMarkerSymbol。尝试这样做。

var resultSymbol = new esri.symbol.PictureMarkerSymbol ({"angle":0,"xoffset":0,"yoffset":12,"type":"esriPMS", "url":"http://static.arcgis.com/images/Symbols/Basic/RedStickpin.png", "contentType":"image/png","width":24,"height":24});

【讨论】:

    【解决方案2】:

    您在 Android 的 Java 代码中使用 JavaScript 对象表示法 (JSON) 语法。它不会工作。

    @azmuhak 是在正确的轨道上。您需要创建一个PictureMarkerSymbol 而不是SimpleMarkerSymbol。但是你需要用 Android 的方式,而不是 JavaScript 的方式。

    这里有一些示例代码,用于创建PictureMarkerSymbol、创建GraphicsLayer、将GraphicsLayer 添加到地图以及将新图形添加到GraphicsLayer(加载地图后运行此代码,也许使用MapView.setOnStatusChangedListener):

    PictureMarkerSymbol pms = new PictureMarkerSymbol(
        "http://static.arcgis.com/images/Symbols/Basic/RedStickpin.png");
    pms.setAngle(0f);
    pms.setOffsetX(0f);
    pms.setOffsetY(12f);
    GraphicsLayer graphicsLayer = new GraphicsLayer();
    mMapView.addLayer(graphicsLayer);
    graphicsLayer.addGraphic(new Graphic(new Point(12, 34), pms));
    

    旁注:在 Android 中可以解析 JSON 字符串以生成 PictureMarkerSymbol。但在这种情况下,我的示例代码更简单,更不容易出错。

    【讨论】:

    • 我确实尝试了您的代码,但它确实有效。我仍然不知道问题的过程是什么
    • 在调用 addGraphic 之前创建 GraphicsLayer 并将其添加到地图中,而不是之后。
    • @GaryS。如何设置 PictureMarkerSymbol 的宽度和高度?
    • @20Cents:好问题。我怀疑您会想要使用采用 Drawable 而不是 URL 字符串的构造函数并缩放 Drawable,如 stackoverflow.com/questions/4609456/…
    猜你喜欢
    • 2013-11-29
    • 2016-09-01
    • 2022-07-08
    • 2013-06-15
    • 2014-04-19
    • 2012-07-16
    • 1970-01-01
    • 2018-07-12
    • 2021-11-27
    相关资源
    最近更新 更多