首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >夏普图-地图上的打印点

夏普图-地图上的打印点
EN

Stack Overflow用户
提问于 2016-01-18 16:33:33
回答 1查看 2.2K关注 0票数 0

我刚刚开始使用Sharpmap,但我有一个问题。我无法使用这个库在地图上打印点(甚至一个点)。

我没有找到一个很好的例子来做这件事,我的代码也不起作用。它离它应有的位置太远了(西班牙马德里)。

如果有人知道如何使用它,我会感谢你的帮助。

这是我的代码:

代码语言:javascript
复制
namespace TestsSharpmapForm
{
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();

        VectorLayer vlay = new VectorLayer("Spain");
        vlay.DataSource = new SharpMap.Data.Providers.ShapeFile(@"ESP_adm_shp\ESP_adm2.shp", true);

        VectorLayer vlay2 = new VectorLayer("Points");
        Collection<GeoAPI.Geometries.IGeometry> geomColl =   new Collection<GeoAPI.Geometries.IGeometry>();
        //Get the default geometry factory
        GeoAPI.GeometryServiceProvider.Instance = new NetTopologySuite.NtsGeometryServices();
        GeoAPI.Geometries.IGeometryFactory gf =
            GeoAPI.GeometryServiceProvider.Instance.CreateGeometryFactory();

        geomColl.Add(gf.CreatePoint(new GeoAPI.Geometries.Coordinate(40.4177623, -3.6690416)));
        vlay2.DataSource = new SharpMap.Data.Providers.GeometryProvider(geomColl);

        mapBox1.Map.Layers.Add(vlay);
        mapBox1.Map.Layers.Add(vlay2);

        //ProjNet.CoordinateSystems.Transformations.CoordinateTransformationFactory ctFact = new ProjNet.CoordinateSystems.Transformations.CoordinateTransformationFactory();
        //vlay.CoordinateTransformation = ctFact.CreateFromCoordinateSystems(ProjNet.CoordinateSystems.GeographicCoordinateSystem.WGS84, ProjNet.CoordinateSystems.ProjectedCoordinateSystem.WebMercator);
        //vlay.ReverseCoordinateTransformation = ctFact.CreateFromCoordinateSystems(ProjNet.CoordinateSystems.ProjectedCoordinateSystem.WebMercator, ProjNet.CoordinateSystems.GeographicCoordinateSystem.WGS84);


        mapBox1.Map.ZoomToExtents();
        mapBox1.Refresh();
        mapBox1.ActiveTool = SharpMap.Forms.MapBox.Tools.Pan;
        Image imgMap = mapBox1.Map.GetMap();


    }

    private void mapBox1_Click(object sender, EventArgs e)
    {

    }
}

}

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-18 21:06:46

X和Y应该是相反的:

代码语言:javascript
复制
geomColl.Add(gf.CreatePoint(new GeoAPI.Geometries.Coordinate(-3.6690416, 40.4177623)));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34859641

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档