EPR类企业管理系统

在我们现有系统基础上或全新开发,提供定制服务
为您的企业高效快速实施ERP,WMS,MES,CRM管理系统
全面管控物料仓库、销售业务、采购业务、仓库业务
生产过程、质量检验、组织架构、业务报表


定制
QQ:460-3528

开发
QQ群:3360-90194

源码
微信:136-3650-3721

如何:更改地图标记图标

XAF使用默认图标作为地图标记。要更改此图标或为每个标记指定不同的图标,请遵循“扩展业务对象类”部分中的说明,并实施以下方法之一:

扩展业务对象类

使用字符串属性扩展实现IMapsMarker接口的业务类。此属性存储指向单个或公共标记图标的链接。

以下代码演示了如何使用IndividualMarkerIcon或CommonMarkerIcon字符串属性扩展Location类:

using DevExpress.Persistent.Base;
using DevExpress.Persistent.BaseImpl;
// ...
public class Location : BaseObject, IMapsMarker {
    // ...
    public string IndividualMarkerIcon { get; set; }
    // or
    public string CommonMarkerIcon { 
        get { 
            return "http://js.devexpress.com/Demos/RealtorApp/images/map-marker.png"; 
        } 
    }
}
提示

完整的Location类代码可在Use Raster Maps主题中找到。

特定于ASP.NET的方法

  1. ObjectViewController <ViewType,ObjectType>后代添加到ASP.NET模块项目中。将ViewType参数设置为ListView,将ObjectType参数设置为Location

    如果您有多个Location的List View,请在Controller的构造函数中指定TargetViewId属性。

  2. OnViewControlsCreated重写方法中,访问WebMapsListEditor。将列表编辑器控件的MapSettings.IconSrcPropertyName属性设置为包含指向标记图标的链接的属性的名称。

控制器的代码如下所示:

    using DevExpress.ExpressApp;
    using DevExpress.ExpressApp.Maps.Web;
    // ...
    public class MarkerIconController : ObjectViewController<ListView, Location> {
        public MarkerIconController () {
            TargetViewId = "Location_ListView_Map";
        }
        protected override void OnViewControlsCreated() {
            base.OnViewControlsCreated();
            WebMapsListEditor webMapsListEditor = View.Editor as WebMapsListEditor;
            if(webMapsListEditor != null) {
                // set an individual marker icon for each Location
                webMapsListEditor.MapViewer.MapSettings.IconSrcPropertyName = nameof(Location.IndividualMarkerIcon);
                // or 
                // set a common marker icon for all Locations
                webMapsListEditor.MapViewer.MapSettings.IconSrcPropertyName = nameof(Location.CommonMarkerIcon);
            }
        }
    }

特定于移动的方法

  1. ObjectViewController <ViewType,ObjectType>后代添加到Mobile模块项目中。将ViewType参数设置为ListView,将ObjectType参数设置为Location

    如果您有多个Location的List View,请在Controller的构造函数中指定TargetViewId属性。

  2. OnViewControlsCreated重写方法中,访问MobileMapsListEditor。将列表编辑器控件的Map.IconSrcPropertyName属性设置为包含指向标记图标的链接的属性的名称。

控制器的代码如下所示:

    using DevExpress.ExpressApp;
    using DevExpress.ExpressApp.Maps.Mobile.Editors;
    //...
    public class IndividualMarkerIconController : ObjectViewController<ListView, Location> {
        public MarkerIconController () {
            TargetViewId = "Location_ListView_Map";
        }
        protected override void OnViewControlsCreated() {
            base.OnViewControlsCreated();
            MobileMapsListEditor mobileMapsListEditor = View.Editor as MobileMapsListEditor;
            if(mobileMapsListEditor != null) {
                // set an individual marker icon for each Location
                mobileMapsListEditor.MapViewer.IconSrcPropertyName = nameof(Location.IndividualMarkerIcon);
                // or
                // set a common marker icon for all Locations
                mobileMapsListEditor.MapViewer.IconSrcPropertyName = nameof(Location.CommonMarkerIcon);
            }
        }
    }
相关文章

转载保留此链接,注明出处