leafletjs是一款优秀的开源二维地图,并提供了丰富的开发Api,下面列举一个在地图上动态标绘polygon的代码,实现起来的比较方便、简单。
创新互联公司2013年成立,公司以成都做网站、成都网站建设、系统开发、网络推广、文化传媒、企业宣传、平面广告设计等为主要业务,适用行业近百种。服务企业客户上千多家,涉及国内多个省份客户。拥有多年网站建设开发经验。为企业提供专业的网站建设、创意设计、宣传推广等服务。 通过专业的设计、独特的风格,为不同客户提供各种风格的特色服务。具体实现代码:
//定义地图对象
map = L.map('_MainMap', {
maxZoom: 16
});
//加载OSM的开源在线地图
L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
attribution: '© OpenStreetMap contributors'
}).addTo(map);
//点击按钮开始进行标绘:
$(document).ready(function () {
$("#_createBtn").click(function (e) {
//注册地图的左键点击事件和双击事件
map.on('click', MapLeftClick);
map.on("dblclick", MapDoubleClick);
//创建一个空的polygon,设置简单属性
_polygon = L.polygon(_pointArr, {
color: 'red',
fillColor: '#f03',
fillOpacity: 0.5
});
//将polygon加载到地图上
_polygon.addTo(map);
});
});
var _polygon = null;
var _pointArr = new Array();
//双击事件结束标绘polygon
function MapDoubleClick(e)
{
map.off('click', MapLeftClick);
map.off("dblclick", MapDoubleClick);
}
//左键点击事件修改polygon的点
function MapLeftClick(e) {
//在地图上标注每个点的位置
L.circleMarker(e.latlng, {
radius: 2,
color: 'red'
}).addTo(map);
//给polygon上增加点
_polygon.addLatLng(e.latlng);
}
代码比较简单,当然在标绘时也可以自定义各个实现的属性。
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。