Google地图标记自定义图标

码厨frog 2014-08-10 02:42:48
最开始的问题是这样的:
http://bbs.csdn.net/topics/390855382?page=1#post-397950642
现在想到的方法是通过GDI+画出标记然后引用,C#代码如下:
(真正的问题在最后,不要着急
        public Bitmap DrawMarker(int Input)
{
Bitmap marker = new Bitmap(25, 40);

Bitmap midMarker = new Bitmap(50, 80);
Graphics pictureBack = Graphics.FromImage(midMarker);
pictureBack.SmoothingMode = SmoothingMode.AntiAlias;
GraphicsPath markerCenterPath = new GraphicsPath();
GraphicsPath markerPath = new GraphicsPath();

markerCenterPath.AddEllipse(new Rectangle(13, 14, 25, 25));

markerPath.AddBezier(new Point(25, 80), new Point(25, 55), new Point(5, 40), new Point(5, 35));
markerPath.AddBezier(new Point(5, 35), new Point(0, 25), new Point(6, 12), new Point(7, 10));
markerPath.AddBezier(new Point(7, 10), new Point(15, -1), new Point(35, -1), new Point(43, 10));
markerPath.AddBezier(new Point(43, 10), new Point(44, 12), new Point(50, 25), new Point(45, 35));
markerPath.AddBezier(new Point(45, 35), new Point(45, 40), new Point(25, 55), new Point(25, 80));

pictureBack.FillPath(new SolidBrush(Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(128)))), ((int)(((byte)(128)))))), markerPath);
pictureBack.FillPath(new SolidBrush(Color.Yellow), markerCenterPath);

pictureBack.DrawPath(new Pen(Color.Brown, 2), markerPath);
pictureBack.DrawString(Input.ToString(), new Font("微软雅黑", 20, FontStyle.Bold), new SolidBrush(Color.Black), 14, 9);

Graphics pictureBackEnd = Graphics.FromImage(marker);
pictureBackEnd.SmoothingMode = SmoothingMode.AntiAlias;
pictureBackEnd.DrawImage(midMarker, new Point[] { new Point(0, 0), new Point(marker.Width, 0), new Point(0, marker.Height) });

return marker;
}

总之就是生成一个bitmap的变量(不是文件)
然后JS来调用:
        
airportmodel = new google.maps.Marker({
position: mapProp.center,
map: map,
icon: window.external.DrawMarker()
});

问题出来了,这样调用不行,那么该怎么办呢?谢谢啦!
...全文
542 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
码厨frog 2014-08-10
  • 打赏
  • 举报
回复
引用 2 楼 sp1234 的回复:
“总之就是生成一个bitmap的变量(不是文件) 然后JS来调用” 我去?!你的GDI+代码运行在浏览器上吗?不在浏览器上,你的JS怎么调用? 要做一个事情,必须先证明是靠谱的。如果离目标有天壤之别,那么就不应该给你出主意。
其实我不是要开发一个网页的,只是一个Winform程序,用webrowser加载地图,JS与C#交互就可以了。谢谢啦!
码厨frog 2014-08-10
  • 打赏
  • 举报
回复
引用 1 楼 jshi123 的回复:
不需要这么复杂。可以先在地图上画出marker,然后把经纬坐标转成lef, top页面坐标,再自己添加个div到这个位置就可以了,div中的内容可以任意写。 这里有个别人封装好的LabelMarker,可以参考下: http://blog.163.com/youthpasses@yeah/blog/static/161849228201152811259906/
太感谢了,太感谢了!
  • 打赏
  • 举报
回复
“总之就是生成一个bitmap的变量(不是文件) 然后JS来调用” 我去?!你的GDI+代码运行在浏览器上吗?不在浏览器上,你的JS怎么调用? 要做一个事情,必须先证明是靠谱的。如果离目标有天壤之别,那么就不应该给你出主意。
jshi123 2014-08-10
  • 打赏
  • 举报
回复
不需要这么复杂。可以先在地图上画出marker,然后把经纬坐标转成lef, top页面坐标,再自己添加个div到这个位置就可以了,div中的内容可以任意写。 这里有个别人封装好的LabelMarker,可以参考下: http://blog.163.com/youthpasses@yeah/blog/static/161849228201152811259906/
免费下载地址:https://pan.baidu.com/s/1dFbFFWl 可以先使用 满意再收费注册 下载解压 在杀毒软件里面添加信任 再打开“电脑离线地图标注软件”图标使用。保证没有任何功能限制 电脑离线电子地图标注软件主要功能如下:可以标注位置,可以搜索地图上本来有的位置和标注的位置,可以把某个标注的位置显示在地图中心。软件支持电脑在线下载地图后(离线)地图查看浏览, 1.支持谷歌在线(离线)混合卫星地图,普通地图,地形地图,微软电子地图,微软卫星地图,bing地图,在软件界面上可以选择地图类型切换; 2.支持1-20级的地图随意缩放,鼠标右键拖动漫游。 3.支持名称查询定位,可以输入地点名称后定位到所查询的位置。 4.支持坐标查询定位,可以输入坐标数值后定位的所查询的位置。 5.支持用户自定义信息,信息高级查询,查询结果实时定位。 6.支持在地图上所选择的标注能点击查看详细信息。 7.支持添加地图标记,距离测量和面积测量,地点名称显示。 8.支持鹰眼显示缩略地图,截屏功能。 9.支持添加自定义标识图标,用户可以更换图标。 10.分类图层管理,可以隐藏/显示图层。 11.支持批量导入导出标注数据。 12.支持绘制直线、曲线和任意线段,可改变颜色和宽度。 13.支持GPS卫星定位功能,需要连接GPS卫星定位硬件设备(USB GPS设备或蓝牙GPS设备,平板电脑)。 14.支持离线地图自定义下载功能,可以下载世界任何地方的地图。 15.支持保存您当前操作的文件,供日后打开再用,保证操作不会丢失。 16.新增批量导入导出数据功能,网络代理设置。 17.新增分类图层管理。 18.图标上方显示文字。 19.支持在地图上绘制路线。 20.支持gps卫星定位。 21.支持商圈范围功能。
电子地图标注软件是一款专门为用户设计在电脑上进行地点查询的实用型工具。软件功能强大,可以搜索地图上本来有的位置和标注的位置,并支持电脑在线(离线)地图查看浏览,还支持无人机航拍地图导入。软件界面美观简洁、简单全面、实用方便,无需培训,即可快速上手,轻轻松松完成日常地点查询功能,真正做到简单全面实用。是用户实现地点查询功能的好帮手。 电子地图标注软件功能 1.支持谷歌在线(离线)混合地图,在软件界面上可以选择切换; 2.支持1-20级的地图随意缩放,鼠标右键拖动漫游。 3.支持下载图片格式选择,包括Jpg,Png,Gif,Bmp。 4.支持名称查询定位,可以输入地点名称后定位到所查询的位置。 5.支持坐标查询定位,可以输入坐标数值后定位的所查询的位置。 6.支持用户自定义的信息,信息查询,查询结果实时定位。 7.支持在地图上所选择的标注能点击查看详细信息。 8.支持添加地图标记,距离测量显示,地点名称显示。 9.支持保存您当前操作的文件,供日后打开再用,保证操作不会丢失。 10.支持全球地图操作预览。 11.支持添加自定义标识图标,用户可以更换图标。  电子地图标注软件 v6.4更新 更新了有时候无法打开地图的问题 更新了可以添加自定义图标 新增批量导入功能 新增地标显示 鼠标移动标注 增加皮肤 图标自动缩放 支持gps卫星定位 支持微软地图 电子地图标注软件软件截图
电子地图沙盘软件是一个不需要联网就可以使用的电子地图,支持谷歌在线和离线地图,可以定位查询地标,基本上一般地图有的功能这款软件也有,但是更省流量。结果实时定位,数据批量导入导出。 电子地图沙盘软件功能特色 1.支持用户自定义信息,信息高级查询,查询结果实时定位。 2.支持1-20级的地图随意缩放,鼠标右键拖动漫游。 3.支持名称查询定位,可以输入地点名称后定位到所查询的位置。 4.支持谷歌在线和离线地图,离线时需要地图包;混合卫星地图,普通地图,地形地图,在软件界面上可以选择地图类型切换。 5.支持添加地图标记,距离测量显示,地点名称显示。 6.支持在地图上所选择的标注能点击查看详细信息。 7.支持添加自定义标识图标,用户可以更换图标。 8.支持保存您当前操作的文件,供日后打开再用,保证操作不会丢失。 9.支持坐标查询定位,可以输入坐标数值后定位的所查询的位置。 10.支持在地图上绘制直线,曲线,虚线等等,各种图形,支持添加自定义图片。 11.支持数据的批量导出和导入。 12.支持树形结构设置层级。 电子地图沙盘软件使用方法 双指双击屏幕可缩小视图 使用双指开合或旋转即可放大、缩小以及旋转您当前的视点 使用单指轻扫屏幕转动地球 单指双击屏幕可放大视图 双指一起轻扫屏幕可倾斜视图

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧