精华内容
参与话题
问答
  • 类似谷歌地图 web地图 图片拖动 百度地图 网页地图效果 MyMaps.rar
  • 这是一个高性能的WEB地图服务器,可以将常见的失量地图文件(shp, mif, tab)发布为WEB瓦片地图服务,发布好的地图与百度高德等web地图一样,该应用不需要安装任何插件即可使用,压缩包内有使用说明及测试脚本。
  • WEB地图实现

    2010-01-01 19:10:00
    web地图的实现其实是调用一组API来进行实现的, 当然在地图上肯定要实现目标的位置,要标注目标需要精确到其经纬度。你也可以在标注上设置提示。 API有很多,较常用的是51ditu.com。你只需要调用方法,将地图显示...

    web地图的实现其实是调用一组API来进行实现的,

    当然在地图上肯定要实现目标的位置,要标注目标需要精确到其经纬度。你也可以在标注上设置提示。

    API有很多,较常用的是51ditu.com。你只需要调用方法,将地图显示出来就可以了。

     web地图实现案例下载 

     1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
     2 <HTML>
     3  <HEAD>
     4   <TITLE> New Document </TITLE>
     5   <META NAME="Generator" CONTENT="EditPlus">
     6   <META NAME="Author" CONTENT="">
     7   <META NAME="Keywords" CONTENT="">
     8   <META NAME="Description" CONTENT="">
     9  </HEAD>
    10 
    11  <BODY>
    12  <!--地图API-->
    13  <script language="javascript" src="http://api.51ditu.com/js/maps.js"></script>
    14 <!--创建一个DIV-->
    15 <div id="maps" style="position:relative; width:300px; height:200px; border:black solid 1px;">
    16 <div align="center" style="margin:12px;">
    17 </div>
    18 </div>
    19  <script>
    20   var maps = new LTMaps( "maps" );  //maps为div的id
    21     maps.cityNameAndZoom( "shiyan" , 2 );
    22     var point = new LTPoint(11102524,3240136);//武当山经纬度
    23     maps. centerAndZoom (point,1);
    24     var c = new LTSmallMapControl();
    25     maps.addControl(c);
    26     
    27     var marker = new LTMarker( point );
    28     maps.addOverLay(marker); //添加标注
    29     var text = new LTMapText( marker );
    30     text.setLabel( "武当山" ); 
    31     maps.addOverLay(text); 
    32     </script>
    33  </BODY>
    34 </HTML>
    35 

     

     

    转载于:https://www.cnblogs.com/yoainet/archive/2010/01/01/1637513.html

    展开全文
  • Web地图服务器

    千次阅读 2014-05-27 20:16:45
    因为项目需要,需要实现地图上显示设备位置,即实现地图服务器功能。暂时找到的方式有如下两种:  库 地图数据库 GisServer 前端显示  GMap sqlite

    因项目需要,需要实现在网页上显示地图,并标明设备位置,即实现地图服务器功能。暂时找到的方式有如下两种:

     库 地图数据库 GisServer               前端显示 
    GMap         sqlite                                           JDBC读取sqlite数据库文件 LeafLet 
    GeoServer    PostGis, (Oralce, MySQL 等,需要预先装上插件) GeoServer                   OpenLayer, GeoExt 




    1 GMap.NET 

    真正使用的是 GMap.NET 库,在 TileServer 示例中,是通过 Java 实现了一个处理浏览器请求的服务器,负责处理浏览器中的请求,从数据库中读取到对应地图文件返回给客户端。


    而在客户端中,采用 LeafLet 库,将数据库中的图片信息整合成地图显示出来。


    后台服务器可以在 Java Web 项目中实现(仅仅就是通过读取数据库,返回文件内容即可)。


    网页客户端中显示对应地图文件,需要熟练掌握通过调用接口,实现添加标记、划取区域等功能。


    由于请求的地图 URL 地址是类似于 /x/y/z 的这种形式,可以再通过 URLRewrite 库的方式,将对应的地址转化成正常的请求链接即可。

    1.1 资料 


    GMap.Net

    leaflet js库

    采用 JQuery 库的 Gmap 信息


    2 GeoServer 

    GeoServer 的学习难度稍微有些大,需要了解 WMS(显示地图文件的方式),WFS(地图上的位置信息显示),还应考虑 uDig 等制作地图文件工具使用方法;以及怎么下载某个地区中的文件,将地图数据能够部署起来。

    2.1 资料 

    GeoServer 官方

    OpenLayer

    GeoExt




    展开全文
  • Web地图理论

    2015-01-27 09:34:31
    墨卡托投影(Mercator Projection),又名“等角正轴圆柱投影”,荷兰地图学家墨卡托(Mercator)在1569年拟定,假设地球被围在一个中空的圆柱里,其赤道与圆柱相接触,然后再假想地球中心有一盏灯,把球面上的图形...
    墨卡托投影(Mercator Projection),又名“等角正轴圆柱投影”,荷兰地图学家墨卡托(Mercator)在1569年拟定,假设地球被围在一个中空的圆柱里,其赤道与圆柱相接触,然后再假想地球中心有一盏灯,把球面上的图形投影到圆柱体上,再把圆柱体展开,这就是一幅标准纬线为零度(即赤道)的“墨卡托投影”绘制出的世界地图。



    一、墨卡托投影坐标系(Mercator Projection)
      墨卡托投影以整个世界范围,赤道作为标准纬线,本初子午线作为中央经线,两者交点为坐标原点,向东向北为正,向西向南为负。南北极在地图的正下、上方,而东西方向处于地图的正右、左。 
      由于Mercator Projection在两极附近是趋于无限值得,因此它并没完整展现了整个世界,地图上最高纬度是85.05度。为了简化计算,我们采用球形映射,而不是椭球体形状。虽然采用Mercator Projection只是为了方便展示地图,需要知道的是,这种映射会给Y轴方向带来0.33%的误差。
    由于赤道半径为6378137米,则赤道周长为2*PI*r = 2*20037508.3427892,因此X轴的取值范围:[-20037508.3427892,20037508.3427892]。当纬度φ接近两极,即90°时,Y值趋向于无穷。因此通常把Y轴的取值范围也限定在[-20037508.3427892,20037508.3427892]之间。因此在墨卡托投影坐标系(米)下的坐标范围是:最小为(-20037508.3427892, -20037508.3427892 )到最大 坐标为(20037508.3427892, 20037508.3427892)。

    二、地理坐标系(Geographical coordinates)
      地理经度的取值范围是[-180,180],纬度不可能到达90°,通过纬度取值范围为[20037508.3427892,20037508.3427892]反计算可得到纬度值为85.05112877980659。因此纬度取值范围是[-85.05112877980659,85.05112877980659]。因此,地理坐标系(经纬度)对应的范围是:最小地理坐标(-180,-85.05112877980659),最大地理坐标(180, 85.05112877980659)。 

    三、地面分辨率(Ground Resolution)
      地面分辨率是以一个像素(pixel)代表的地面尺寸(米)。以微软Bing Maps为例,当Level为1时,图片大小为512*512(4个Tile),那么赤道空间分辨率为:赤道周长/512。其他纬度的空间分辨率则为 纬度圈长度/512,极端的北极则为0。Level为2时,赤道的空间分辨率为 赤道周长/1024,其他纬度为 纬度圈长度1024。很明显,Ground Resolution取决于两个参数,缩放级别Level和纬度latitude ,Level决定像素的多少,latitude决定地面距离的长短。
      地面分辨率的公式为,单位:米/像素:
      ground resolution = (cos(latitude * pi/180) * 2 * pi * 6378137 meters) / (256 * 2level pixels)  

      最低地图放大级别(1级),地图是512 x 512像素。每下一个放大级别,地图的高度和宽度分别乘于2:2级是1024 x 1024像素,3级是2048 x 2048像素,4级是4096 x 4096像素,等等。通常而言,地图的宽度和高度可以由以下式子计算得到:map width = map height = 256 * 2^level pixels

    四、地图比例尺(Map Scale)
      地图比例尺是指测量相同目标时,地图上距离与实际距离的比例。通过地图分辨率在计算可知由Level可得到图片的像素大小,那么需要把其转换为以米为单位的距离,涉及到DPI(dot per inch),暂时可理解为类似的PPI(pixelper inch),即每英寸代表多少个像素。256 * 2level / DPI 即得到相应的英寸inch,再把英寸inch除以0.0254转换为米。实地距离仍旧是:cos(latitude * pi/180) * 2 * pi * 6378137 meters; 因此比例尺的公式为:
      map scale = 256 * 2level / screen dpi / 0.0254 / (cos(latitude * pi/180) * 2 * pi * 6378137)
      比例尺= 1 : (cos(latitude * pi/180) * 2 * pi * 6378137 * screen dpi) / (256 * 2level * 0.0254)

      地面分辨率和地图比例尺之间的关系:
      map scale = 1 : ground resolution * screen dpi / 0.0254 meters/inch 
    缩放级别
    地图宽度、高度(像素)
    地面分辨率(米/像素)
    地图比例尺(以96dpi为例)
    1
    512
    78,271.5170
    1 : 295,829,355.45
    2
    1,024
    39,135.7585
    1 : 147,914,677.73
    3
    2,048
    19,567.8792
    1 : 73,957,338.86
    4
    4,096
    9,783.9396
    1 : 36,978,669.43
    5
    8,192
    4,891.9698
    1 : 18,489,334.72
    6
    16,384
    2,445.9849
    1 : 9,244,667.36
    7
    32,768
    1,222.9925
    1 : 4,622,333.68
    8
    65,536
    611.4962
    1 : 2,311,166.84
    9
    131,072
    305.7481
    1 : 1,155,583.42
    10
    262,144
    152.8741
    1 : 577,791.71
    11
    524,288
    76.4370
    1 : 288,895.85
    12
    1,048,576
    38.2185
    1 : 144,447.93
    13
    2,097,152
    19.1093
    1 : 72,223.96
    14
    4,194,304
    9.5546
    1 : 36,111.98
    15
    8,388,608
    4.7773
    1 : 18,055.99
    16
    16,777,216
    2.3887
    1 : 9,028.00
    17
    33,554,432
    1.1943
    1 : 4,514.00
    18
    67,108,864
    0.5972
    1 : 2,257.00
    19
    134,217,728
    0.2986
    1 : 1,128.50
    20
    268,435,456
    0.1493
    1 : 564.25
    21
    536,870,912
    0.0746
    1 : 282.12
    22
    1,073,741,824
    0.0373
    1 : 141.06
    23
    2,147,483,648
    0.0187
    1 : 70.53


    五、Bing Maps像素坐标系和地图图片编码
      为了优化地图系统性能,提高地图下载和显示速度,所有地图都被分割成256 x 256像素大小的正方形小块。由于在每个放大级别下的像素数量都不一样,因此地图图片(Tile)的数量也不一样。每个tile都有一个XY坐标值,从左上角的(0, 0)至右下角的(2^level–1, 2^level–1)。例如在3级放大级别下,所有tile的坐标值范围为(0, 0)至(7, 7),如下图:


     已知一个像素的XY坐标值时,我们很容易得到这个像素所在的Tile的XY坐标值:
        tileX = floor(pixelX / 256)  tileY = floor(pixelY / 256)

      为了简化索引和存储地图图片,每个tile的二维XY值被转换成一维字串,即四叉树键值(quardtree key,简称quadkey)。每个quadkey独立对应某个放大级别下的一个tile,并且它可以被用作数据库中B-tree索引值。为了将坐标值转换成quadkey,需要将Y和X坐标二进制值交错组合,并转换成4进制值及对应的字符串。例如,假设在放大级别为3时,tile的XY坐标值为(3,5),quadkey计算如下:
      tileX = 3 = 011(二进制)
      tileY = 5 = 101(二进制)
      quadkey = 100111(二进制) = 213(四进制) = “213”
      Quadkey还有其他一些有意思的特性。第一,quadkey的长度等于该tile所对应的放大级别;第二,每个tile的quadkey的前几位和其父tile(上一放大级别所对应的tile)的quadkey相同,下图中,tile 2是tile 20至23的父tile,tile 13是tile 130至133的父级:


    最后,quadkey提供的一维索引值通常显示了两个tile在XY坐标系中的相似性。换句话说,两个相邻的tile对应的quadkey非常接近。这对于优化数据库的性能非常重要,因为相邻的tile通常被同时请求显示,因此可以将这些tile存放在相同的磁盘区域中,以减少磁盘的读取次数。

      下面是微软Bing Maps的TileSystem相关算法:

    using System;
    using System.Text;
    
    namespace Microsoft.MapPoint
    {
    static class TileSystem
    {
    private const double EarthRadius = 6378137;
    private const double MinLatitude = -85.05112878;
    private const double MaxLatitude = 85.05112878;
    private const double MinLongitude = -180;
    private const double MaxLongitude = 180;
    
    
    /// <summary>
    /// Clips a number to the specified minimum and maximum values.
    /// </summary>
    /// <param name="n">The number to clip.</param>
    /// <param name="minValue">Minimum allowable value.</param>
    /// <param name="maxValue">Maximum allowable value.</param>
    /// <returns>The clipped value.</returns>
    private static double Clip(double n, double minValue, double maxValue)
    {
    return Math.Min(Math.Max(n, minValue), maxValue);
    }
    
    
    
    /// <summary>
    /// Determines the map width and height (in pixels) at a specified level
    /// of detail.
    /// </summary>
    /// <param name="levelOfDetail">Level of detail, from 1 (lowest detail)
    /// to 23 (highest detail).</param>
    /// <returns>The map width and height in pixels.</returns>
    public static uint MapSize(int levelOfDetail)
    {
    return (uint) 256 << levelOfDetail;
    }
    
    
    
    /// <summary>
    /// Determines the ground resolution (in meters per pixel) at a specified
    /// latitude and level of detail.
    /// </summary>
    /// <param name="latitude">Latitude (in degrees) at which to measure the
    /// ground resolution.</param>
    /// <param name="levelOfDetail">Level of detail, from 1 (lowest detail)
    /// to 23 (highest detail).</param>
    /// <returns>The ground resolution, in meters per pixel.</returns>
    public static double GroundResolution(double latitude, int levelOfDetail)
    {
    latitude = Clip(latitude, MinLatitude, MaxLatitude);
    return Math.Cos(latitude * Math.PI / 180) * 2 * Math.PI * EarthRadius / MapSize(levelOfDetail);
    }
    
    
    
    /// <summary>
    /// Determines the map scale at a specified latitude, level of detail,
    /// and screen resolution.
    /// </summary>
    /// <param name="latitude">Latitude (in degrees) at which to measure the
    /// map scale.</param>
    /// <param name="levelOfDetail">Level of detail, from 1 (lowest detail)
    /// to 23 (highest detail).</param>
    /// <param name="screenDpi">Resolution of the screen, in dots per inch.</param>
    /// <returns>The map scale, expressed as the denominator N of the ratio 1 : N.</returns>
    public static double MapScale(double latitude, int levelOfDetail, int screenDpi)
    {
    return GroundResolution(latitude, levelOfDetail) * screenDpi / 0.0254;
    }
    
    
    
    /// <summary>
    /// Converts a point from latitude/longitude WGS-84 coordinates (in degrees)
    /// into pixel XY coordinates at a specified level of detail.
    /// </summary>
    /// <param name="latitude">Latitude of the point, in degrees.</param>
    /// <param name="longitude">Longitude of the point, in degrees.</param>
    /// <param name="levelOfDetail">Level of detail, from 1 (lowest detail)
    /// to 23 (highest detail).</param>
    /// <param name="pixelX">Output parameter receiving the X coordinate in pixels.</param>
    /// <param name="pixelY">Output parameter receiving the Y coordinate in pixels.</param>
    public static void LatLongToPixelXY(double latitude, double longitude, int levelOfDetail, out int pixelX, out int pixelY)
    {
    latitude = Clip(latitude, MinLatitude, MaxLatitude);
    longitude = Clip(longitude, MinLongitude, MaxLongitude);
    
    double x = (longitude + 180) / 360; 
    double sinLatitude = Math.Sin(latitude * Math.PI / 180);
    double y = 0.5 - Math.Log((1 + sinLatitude) / (1 - sinLatitude)) / (4 * Math.PI);
    
    uint mapSize = MapSize(levelOfDetail);
    pixelX = (int) Clip(x * mapSize + 0.5, 0, mapSize - 1);
    pixelY = (int) Clip(y * mapSize + 0.5, 0, mapSize - 1);
    }
    
    
    
    /// <summary>
    /// Converts a pixel from pixel XY coordinates at a specified level of detail
    /// into latitude/longitude WGS-84 coordinates (in degrees).
    /// </summary>
    /// <param name="pixelX">X coordinate of the point, in pixels.</param>
    /// <param name="pixelY">Y coordinates of the point, in pixels.</param>
    /// <param name="levelOfDetail">Level of detail, from 1 (lowest detail)
    /// to 23 (highest detail).</param>
    /// <param name="latitude">Output parameter receiving the latitude in degrees.</param>
    /// <param name="longitude">Output parameter receiving the longitude in degrees.</param>
    public static void PixelXYToLatLong(int pixelX, int pixelY, int levelOfDetail, out double latitude, out double longitude)
    {
    double mapSize = MapSize(levelOfDetail);
    double x = (Clip(pixelX, 0, mapSize - 1) / mapSize) - 0.5;
    double y = 0.5 - (Clip(pixelY, 0, mapSize - 1) / mapSize);
    
    latitude = 90 - 360 * Math.Atan(Math.Exp(-y * 2 * Math.PI)) / Math.PI;
    longitude = 360 * x;
    }
    
    
    
    /// <summary>
    /// Converts pixel XY coordinates into tile XY coordinates of the tile containing
    /// the specified pixel.
    /// </summary>
    /// <param name="pixelX">Pixel X coordinate.</param>
    /// <param name="pixelY">Pixel Y coordinate.</param>
    /// <param name="tileX">Output parameter receiving the tile X coordinate.</param>
    /// <param name="tileY">Output parameter receiving the tile Y coordinate.</param>
    public static void PixelXYToTileXY(int pixelX, int pixelY, out int tileX, out int tileY)
    {
    tileX = pixelX / 256;
    tileY = pixelY / 256;
    }
    
    
    
    /// <summary>
    /// Converts tile XY coordinates into pixel XY coordinates of the upper-left pixel
    /// of the specified tile.
    /// </summary>
    /// <param name="tileX">Tile X coordinate.</param>
    /// <param name="tileY">Tile Y coordinate.</param>
    /// <param name="pixelX">Output parameter receiving the pixel X coordinate.</param>
    /// <param name="pixelY">Output parameter receiving the pixel Y coordinate.</param>
    public static void TileXYToPixelXY(int tileX, int tileY, out int pixelX, out int pixelY)
    {
    pixelX = tileX * 256;
    pixelY = tileY * 256;
    }
    
    
    
    /// <summary>
    /// Converts tile XY coordinates into a QuadKey at a specified level of detail.
    /// </summary>
    /// <param name="tileX">Tile X coordinate.</param>
    /// <param name="tileY">Tile Y coordinate.</param>
    /// <param name="levelOfDetail">Level of detail, from 1 (lowest detail)
    /// to 23 (highest detail).</param>
    /// <returns>A string containing the QuadKey.</returns>
    public static string TileXYToQuadKey(int tileX, int tileY, int levelOfDetail)
    {
    StringBuilder quadKey = new StringBuilder();
    for (int i = levelOfDetail; i > 0; i--)
    {
    char digit = '0';
    int mask = 1 << (i - 1);
    if ((tileX & mask) != 0)
    {
    digit++;
    }
    if ((tileY & mask) != 0)
    {
    digit++;
    digit++;
    }
    quadKey.Append(digit);
    }
    return quadKey.ToString();
    }
    
    
    
    /// <summary>
    /// Converts a QuadKey into tile XY coordinates.
    /// </summary>
    /// <param name="quadKey">QuadKey of the tile.</param>
    /// <param name="tileX">Output parameter receiving the tile X coordinate.</param>
    /// <param name="tileY">Output parameter receiving the tile Y coordinate.</param>
    /// <param name="levelOfDetail">Output parameter receiving the level of detail.</param>
    public static void QuadKeyToTileXY(string quadKey, out int tileX, out int tileY, out int levelOfDetail)
    {
    tileX = tileY = 0;
    levelOfDetail = quadKey.Length;
    for (int i = levelOfDetail; i > 0; i--)
    {
    int mask = 1 << (i - 1);
    switch (quadKey[levelOfDetail - i])
    {
    case '0':
    break;
    
    case '1':
    tileX |= mask;
    break;
    
    case '2':
    tileY |= mask;
    break;
    
    case '3':
    tileX |= mask;
    tileY |= mask;
    break;
    
    default:
    throw new ArgumentException("Invalid QuadKey digit sequence.");
    }
    }
    }
    }
    }


    展开全文
  • Web地图报告

    2007-11-29 18:55:00
    Web地图报告 作者:classicn…文章来源:www.classicning.com点击数:307更新时间:2007-11-5 (本文转自 http://www.classicning.com/blog/post/468.html) 我把地图网站分为三类,一种...

    Web地图报告

    作者:classicn…    文章来源:www.classicning.com    点击数:307    更新时间:2007-11-5
     
    我把地图网站分为三类,一种是以数据为核心的巨头网站,一种是国内比较普遍的指路导航网站,还有一种是地图社区和其它重视兴趣点的应用。


    数据为核心的地图网站:

    GoogleMaps,YahooMaps, MicrosoftVirtualEarth, 51ditu

    前 三个都是著名的网站、软件公司的产品,最后一个是国内的灵图公司的产品,灵图公司是现在国内GIS行业最大的公司之一,曾经获得过3000万美元的风险投 资。这些网站共同的特点就是背后有大资金的支持,数据充足,技术水平也要远远超出其它小型的应用网站。他们也站在Web2.0应用的最前端,都通过开放的 JavaScriptAPI间接开放数据,让开放人员可以在自己的网站上通过这些API引用这些网站的地图数据,来制作自己各式各样新奇的应用,这种开放 API是现在最流行的Mashup的重要组成部分。

    所以,这类网站本身不见得在地图服务上做得非常突出,但却是整个行业的中流砥柱。


    指路导航类的地图网站:

    go2map,UUmap,Mapbar,mapAbc等

    这 类网站偏重地图的传统应用,或者说只是把GIS里的一些成熟技术,如公交导航等搬到Web上,面向公众而已。但是指路导航一类的功能由于在Web上天生的 非实时性,加上大多数此类网站还没有做出手机地图等可以实时查询的平台,所以从这个角度来说,这类网站曾经也只是看上去很美,现在随着车载导航设备的告诉 发展和普及,这些网站更加显得冷清,多数都在走下坡路。

    在这种情况下,包括Mapbar和mapabc在内的一些网站也在寻求转型,将一些新兴的东西,Web2.0的思维引入地图网站。下面会说到。


    地图社区类的网站:

    E都市,Mapbar, DIY.mapabc

    有 一些网站从一开始就没有把视角盯在指路定位这类传统功能上。E都市就是其中之一,不仅如此,E都市还颠覆了很多传统地图网站的惯例,虽然E都市本身并不是 非常有名。E都市是国内第一个2.5维(仿3D,类似虚拟城市的效果,Web上的3D技术还不成熟,用不好反而让人产生厌恶)的地图网站,通过类似卡通形 象的地物把城市的容貌表现出来,这一点非常成功,给人耳目一新的感觉。功能上,E都市是一个完整的地图社区,用户不仅可以在上面实现定位、测距、找路(甚 至因为是卡通的建筑物,找路变得更加容易,又不像完全实景地图那样让人觉得枯燥),还可以在地图上的任何一个位置发布帖子,添加标记等等。这样一来,整个 城市地图就像一个大型的社区,我们可以在某个地方找到陌生人对此处的评价、留言等等,所有的操作都在地图上完成。不过我认为E都市的问题也恰恰在此,一座 城市作为一个社区,它铺得太大了,人们很难找到自己的小众聚合,也就不会产生归属感,这样的社区网站很难留住用户。没有归属感是它的最大问题。

    Mapbar早先做过博客地图,大家可以在地图上标注自己的位置,于是可以查找周边的博客。这都是非常好的功能,我的博客也在用。大概是由于宣传上声音太小,没有办法得到很多用户的注意,所以这个功能就处在一种冰冷的状态。

    现 在Mapbar、mapabc都在做所谓个性地图,就是有用户自己制作一张地图,可以在上面标识一些信息。因为有人说过世界上80%的信息都和空间位置相 关,这句话一直是整个地图行业在困境中挣扎的一盏明灯,大家都坚信自己会在都在其中找到潜在的地图市场带来的成功。但是个性地图和博客一样,需要用户真正 地“会”使用。不同于博客文字表达的直接,要想通过地图来说出有趣的事情,对地图的本质没有深刻的认识,我认为是很困难的。这方面,作为 ServiceProvider的mapabc们或许应该引导用户,但是这又谈何容易。

    最后,提一提我对地图下的定义,我认为这是做出真正地图网站所必须的。

    *地图是将地理现象用符号和图形按照一定变换规则进行的映射。而地理现象则是在空间中呈现一定分布规律的任何现象。这种规律可以是有序的,更可以是无序的。

    转载于:https://www.cnblogs.com/supersyg/archive/2007/11/29/977320.html

    展开全文
  • web地图小试

    2010-07-07 15:50:00
    web地图小试
  • web 地图杂谈

    2008-04-03 15:37:44
    做的一个网站中需要一个电子地图,姑且叫他web-gis吧!基本的实现机制是网页中的图片动态浏览,mapabc(也就是图盟:http://www.mapabc.com/)的网页地图应该也是基于这一机制实现的,google地图搜索就是mapabc提供的...
  • 自己实现的一个WMS服务器(web map service),实现了getmap和getcapability两个功能,程序运行之前用1.xml内容替换掉另一个xml的内容,运行后有两个按钮,一个是添加shapefile数据的按钮(添加数据后,图层名为...
  • Web地图呈现原理

    2019-12-19 13:54:42
    以下内容转载自木的树的文章《Web地图呈现原理》 作者:木的树 链接:https://www.cnblogs.com/dojo-lzz/p/9250637.html 来源:博客园 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 腾讯...
  • web地图快照技术

    2017-03-14 19:23:19
    最近项目中增加了一个将地图区域进行screenshot后存入word的需求。刚开始考虑用arcgis server的geometryservice服务来实现。于是让组员着手研究,研究了个把月后以没结果结束,但是需求还是没完成,最后还得自己动手...
  • web地图大数据显示

    2013-05-16 23:42:04
    大家好,我想做个WEB地图显示全国的基站分布, 显示全国,然后慢慢放大直到看到每一个。 数据大概是 350W 条。这样的WEB要如何来做呢? 用google的地图
  • 在线互联网地图我先前曾经介绍过不少,但是支持API(Application Programming Interface,应用程序编程接口)的却不多,使用地图API,开发者可以非常方便的调用在线地图中的资源,实现各种各样的地图第三方应用,...
  • 1、GeoServer(地理信息系统服务器)是 OpenGIS Web 服务器规范的 J2EE 实现(geoserver只能用j2ee开发),利用GeoServer 可以方便的发布地图数据。GeoServer的主要特征包括:兼容 WMS 和 WFS 特性;能够将网络地图...
  • 从一篇知乎问答引发的Web地图探索

    千次阅读 2016-02-18 14:38:26
    话题切入下午有点时间,在...虽然已过去几年,但这个问题在Web地图领域还是非常经典的。不过可能非GIS行业的人不理解标题是什么意思,简单说一下:其实标题严格来讲应该是“Google底图”而不是“Google地图”,地图包
  • 想用网页制作例如轨迹实时更新,用线表现运动轨迹,.net。哪位大神帮帮忙,谢谢了
  • H5唤起web地图导航

    2020-01-14 16:01:32
    1.使用高德导航 **示例链接:** http://uri.amap.com/marker?position=lng,lat&name=address&coordinate=gaode&callnative=1 **标准参数链接:** ...name=地址&...
  • 制作自己的Web地图

    千次阅读 2009-03-01 18:46:00
    第一次看google的web地图,觉得挺好玩,技术上可能挺难的,但没多大用。还来无意中看到了《Ajax修炼之道》书中对web地图的实现(第2章),觉得不过如此也没啥难的。前段时间真的碰到了个这样的地图项目,才临时...
  • web地图热力图理解

    2019-07-24 18:09:10
    直接上代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8">...高德地图热力图</title> <link rel="stylesheet" href="https://a.amap.com/jsapi_demos/static/de...
  • 高德地图WEB开发(key申请、api)简约教程 1.首先我们需要去“高德地图开发平台” 通过“百度搜索 ”或者“谷歌搜索 ” 高德地图然后会有一个高德开发平台|高德地图apl 2.登录高德开发平台 这是高德...
  • 摘要:ArcGIS Web 地图由底图和一组相关图层构成,用户可与之交互以执行某一有意义的任务。这些地图可供广大用户使用,并且包括多比例底图、针对特定受众的业务图层以及可帮助用户深入了解感兴趣要素的信息弹出窗口...
  • ArcMap 文档和 Web 地图

    2013-10-12 07:56:00
    地图可用于实现 GIS 的部署和共享。每个交互式 GIS 地图都是一种说明如何将地理信息结合在一起并进行描绘的规范。 创建地图时,需要指定地图图层以及它们在地图中的绘制顺序。每个图层都可用于对特定数据集进行符号...
  • OGC Web地图服务简介

    千次阅读 2010-04-15 10:41:00
    为了解决Web地图服务互操作的困难,实现互操作接口机制的开放性和标准型,作为全球最主要的地理信息互操作规范的制订者和提倡者,OGC开发了一系列的基于公共接口、编码和模式的Web地图方法。如基于Web地图服务的互...
  • QGIS加载Web地图图层

    2020-04-01 23:30:59
    为了在QGIS中把矢量位置信息和地理空间做比较,使用各大Web地图的服务作为图层是一个好办法。 添加Cloud Plugin插件 从Plugins菜单选择插件管理器安装 添加add background layer,可以选择谷歌Map、必应Map、Open ...

空空如也

1 2 3 4 5 ... 20
收藏数 6,508
精华内容 2,603
关键字:

web地图