004 Leaflet 第四个demo 使用自己的图标替换marker图标

一、使用到的文件

leaflet.css

jquery-1.11.1.min.js

leaflet.js

leaf-green.png

leaf-orange.png

leaf-red.png

leaf-shadow.png

这个列子挺简单的,用的官网给的出的列子,图片也可以从官网找到。

二、源码

<!DOCTYPE html>
<html>
<head>
    <title>使用自己的图标替换marker图标</title>
    <link rel="stylesheet" href="https://unpkg.com/[email protected]/dist/leaflet.css" />
    <script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
    <script src="https://unpkg.com/[email protected]/dist/leaflet.js"></script>
</head>

<body>
    <div id="map" style="width:500px;height:500px;"></div>
     <script type="text/javascript">
     $(function(){
        var map = L.map(‘map‘, {
            center: [40, 100],
            zoom: 4
        });
        // 影像
        L.tileLayer("http://t{s}.tianditu.cn/img_w/wmts?service=wmts&request=GetTile&version=1.0.0&LAYER=img&tileMatrixSet=w&TileMatrix={z}&TileRow={y}&TileCol={x}&style=default&format=tiles", {
            subdomains: ["0", "1", "2", "3", "4", "5", "6", "7"]
        }).addTo(map);
        // 地名标注
        L.tileLayer("http://t{s}.tianditu.cn/cia_w/wmts?service=wmts&request=GetTile&version=1.0.0&LAYER=cia&tileMatrixSet=w&TileMatrix={z}&TileRow={y}&TileCol={x}&style=default&format=tiles", {
            subdomains: ["0", "1", "2", "3", "4", "5", "6", "7"]
        }).addTo(map);
        // 边界
        L.tileLayer("http://t{s}.tianditu.cn/ibo_w/wmts?service=wmts&request=GetTile&version=1.0.0&LAYER=ibo&tileMatrixSet=w&TileMatrix={z}&TileRow={y}&TileCol={x}&style=default&format=tiles", {
            subdomains: ["0", "1", "2", "3", "4", "5", "6", "7"]
        }).addTo(map);
        // 使用用户自己的图标
        var greenIcon = L.icon({
            iconUrl: ‘leaf-green.png‘,
            shadowUrl: ‘leaf-shadow.png‘,

            iconSize:     [38, 95], // size of the icon
            shadowSize:   [50, 64], // size of the shadow
            iconAnchor:   [22, 94], // point of the icon which will correspond to marker‘s location
            shadowAnchor: [4, 62],  // the same for the shadow
            popupAnchor:  [-3, -76] // point from which the popup should open relative to the iconAnchor
        });
        L.marker([40, 112], {icon: greenIcon}).addTo(map);

        var LeafIcon = L.Icon.extend({
        options: {
            shadowUrl: ‘leaf-shadow.png‘,
            iconSize:     [38, 95],
            shadowSize:   [50, 64],
            iconAnchor:   [22, 94],
            shadowAnchor: [4, 62],
            popupAnchor:  [-3, -76]
        }
        });
        var greenIcon = new LeafIcon({iconUrl: ‘leaf-green.png‘}),
        redIcon = new LeafIcon({iconUrl: ‘leaf-red.png‘}),
        orangeIcon = new LeafIcon({iconUrl: ‘leaf-orange.png‘});

        L.icon = function (options) {
        return new L.Icon(options);
        };

        L.marker([41.5, 99.09], {icon: greenIcon}).addTo(map).bindPopup("I am a green leaf.");
        L.marker([41.495, 100.083], {icon: redIcon}).addTo(map).bindPopup("I am a red leaf.");
        L.marker([41.49, 101.1], {icon: orangeIcon}).addTo(map).bindPopup("I am an orange leaf.");

    });
</script>
</body>
</html>

三、效果图

时间: 2024-11-08 23:18:28

004 Leaflet 第四个demo 使用自己的图标替换marker图标的相关文章

node.js入门学习(四)--Demo模块化改造

1.node.js中模块的分类 1)node.js内置模块(核心,原生) 所有内置模块在安装node.js时就已经编译成二进制文件,可以直接加载运行(速度较快),部分内置模块,在node.exe这个进程启动时就已经默认加载了,可以直接使用. 2)文件模块 require(./common.js); // 去当前js文件的路径下找commom.js文件并导入执行.如果导入时没有指定文件后缀require(./commom),那么就按照commom.js,common.json,commom.nod

003 Leaflet 第三个demo 地图上的面积测量

一.使用到的文件 leaflet-src.js Leaflet.Editable.js leaflet-measure-path.js leaflet.css leaflet-measure-path.css 面积测量区别于拉框测量面积而言,重点在于面积的计算上面,咨询了gis的小伙伴们,放才知道让用户随意框选形状,计算面积时个复杂的逻辑. 既然是复杂的逻辑,看来不适合自己造个轮子玩. 所以今天借助了一个插件leaflet-measure-path 插件的下载地址:https://github.

node.js入门学习(四)--Demo

需求:图书的增删改查,图书数据保存在data.json文件中. 1.Demo结构: 2.首先下载安装node.js,配置环境变量:参考博客 3.项目初始化 1)创建项目根目录node-hello,进入到根目录node-hello,右键/在此处打开PowerShell窗口. 2)创建app.js文件. 3)在控制台输入命令:npm init -y,会自动创建package.json文件. 4)在控制台输入命令:npm install mime,会自动创建node_modules文件夹,并下载mim

Windows 工作环境 &amp;&amp; Java 开发环境搭建

首先,感谢那篇高效 MacBook 工作环境配置,让我能在第一次使用MacBook时顺利的适应. 时过境迁,换了公司之后,重新换回Windows,新机器,新系统.由于Windows中没有"绿色/免费/汉化/Cxxxk"的"市场"应用,决定基于Windows环境写一篇工作中常用的软件整理,因为是做Java的,所以会把编程和Java相关的软件也带上,非Java猿可忽略这一块. 随着科学技术的提高,真正提高的并不是人类本身,而是各式各样的工具,正如诺基亚的那句广告&quo

HP_LoadRunner_12.02_Tutorial_T7177-88037教程独家中文版

LoadRunner 12.02教程独家中文版 Tylan独家呕血翻译 转载请注明出自“天外归云”的博客园 Welcome to the LoadRunner Tutorial LoadRunner所包含的组件: Vugen:Virtual User Generator,虚拟用户发生器的简称,用来录制用户的业务流程,创建自动化性能测试脚本,亦称之为Vuser脚本. Controller:控制器,用于组织.驱动.管理并监控负载测试. Analysis:分析器,帮助你查看,剖析并比较负载测的结果报告

Spring AOP四种实现方式Demo详解与相关知识探究

一.前言 在网络上看到一篇博客Spring实现AOP的4种方式,博主写的很通俗易懂,但排版实在抓狂,对于我这么一个对排版.代码格式有强迫症的人来说,实在是不能忍受~~~~(>_<)~~~~. 我亲手实现了一遍,重新整理,加上了一些不易关注到的细节.漏掉的知识,以及自己对AOP的一些理解,写成这篇博客. 二.AOP相关概念 (1)AOP是什么?AOP与拦截器的区别? 太抽象的不说,如果你知道Struts2的拦截器,拦截器就是应用的AOP的思想,它用于拦截Action以进行一些预处理或结果处理.而

Leaflet API 翻译(一)

摘自:http://jsrookie.iteye.com/blog/2318972 L.Map API各种类中的核心部分,用来在页面中创建地图并操纵地图. Constructor(构造器) 通过div元素和带有地图选项的描述的文字对象来实例化一个地图对象,其中文字对象是可选的. Options(选项) Map State Options(地图状态选项) centre(中心):初始化地图的地理中心. zoom(缩放):初始化地图的缩放. layers(图层):初始化后加载到地图上的图层. minZ

Android高手速成--第四部分 开发工具及测试工具

第四部分 开发工具及测试工具 主要介绍和Android开发工具和测试工具相关的开源项目. 一.开发效率工具 Json2Java根据JSon数据自动生成对应的Java实体类,还支持Parcel.Gson Annotations对应代码自动生成.期待后续的提取父类以及多url构建整个工程的功能项目地址:https://github.com/jonfhancock/JsonToJava在线演示:http://jsontojava.appspot.com/ IntelliJ Plugin for And

REST风格框架实战:从MVC到前后端分离(附完整Demo)

既然MVC模式这么好,难道它就没有不足的地方吗?我认为MVC至少有以下三点不足:每次请求必须经过“控制器->模型->视图”这个流程,用户才能看到最终的展现的界面,这个过程似乎有些复杂:实际上视图是依赖于模型的,换句话说,如果没有模型,视图也无法呈现出最终的效果:渲染视图的过程是在服务端来完成的,最终呈现给浏览器的是带有模型的视图页面,性能无法得到很好的优化. 为了使数据展现过程更加直接,并且提供更好的用户体验,我们有必要对MVC模式进行改进.不妨这样来尝试:首先从浏览器发送AJAX请求,然后服