http://download.csdn.net/source/1371561
这是具体的内容。
想问下,如何才能实现类似googlemap那种一点图片,然后在那个坐标出现一个标记的功能。
已经取到坐标了,但是我不知道怎么加标记的图片到背景的图片上去?
还是我思路有问题?应该用别的方法做?
总的功能是
1.图片可以拖动,放大缩小
2.双击图片,会出现一个标记。可以多次点击。
3.保存,把坐标保存到数据中。但不知道如何在图片上做标记。
望js高手指教,谢谢。

解决方案 »

  1.   

    哈哈   yami。。   额关注你这个了
      

  2.   

    首先你那个山水画应该设为背景图,然后你的标记(可以拖动的),2个不同的层
    保存?
    如果要记录坐标,我看你已经取出来位置了
    保存加标记的图片到背景的图片 这个的话需要用服务器端语言来实现,例如.NET的GDI+来实现。
    JS脚本不能操作总体来说你要对一个原始的图片进行操作,那么用GDI+吧
      

  3.   

    晕倒了看来js不是万能的我一直以为js是万能的呢
    哎~~~
    gdi+要搞会这个东西估计也不一天两天的事情。哎
      

  4.   

    图片上放个层, 用来显示标记, 然后把坐标保存到数据库刷新页面的时候, 在onload里把标记显示出来.
      

  5.   

    对地,我就是要这个效果!!!
    不过我写了的增加标记的js代码都没用不知道咋回事?
    var id = 1;
        function AddMark() {
            var currentX = document.getElementById("ClientX").value;
            var currentY = document.getElementById("ClientY").value;
            var newMark = document.createElement("div");
            newMark.innerHTML = "<div id='layer" + id + "' style='visibility:visible;border:2px solid red;position: absolute;z-index:3;width:3px;height:3px;left:" + currentX + "px;top:" + currentY + "px;' ondblclick='javascript:alert(aa)'> </div>";        document.getElementById("flow").appendChild(newMark);
            alert(newMark.innerHTML);
            id++;
        }点了以后不报错,不显示
      

  6.   

    做了个简单的, 标记位置保存在cookie里, 可以参考下.<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>测试图片标记</title>
    <style type="text/css">
    #container{
    position:relative; width:400px; height:300px; border:1px solid #CCC; overflow:hidden;
    }
    #map{
    position:absolute;
    }
    .{
    position:absolute; width:6px; height:6px; font-size:0px; background:#FF0000;
    }
    </style>
    <script type="text/javascript">
    var  = [];function setCookie(name,value)
    {
        var Days = 365;
        var exp  = new Date();
        exp.setTime(exp.getTime() + Days*24*60*60*1000);
        document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
    }
    function getCookie(name)     
    {
        var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
         if(arr != null) return unescape(arr[2]); return null;}
    function delCookie(name)
    {
        var exp = new Date();
        exp.setTime(exp.getTime() - 1);
        var cval=getCookie(name);
        if(cval!=null) document.cookie= name + "="+cval+";expires="+exp.toGMTString();
    }function $(id){
    return document.getElementById(id);
    }
    function point(x, y){
    this.x = x;
    this.y = y;
    }
    function getOffset(obj){
    var x = 0, y = 0;
    while(obj){
    x += obj.offsetLeft;
    y += obj.offsetTop;

    obj = obj.offsetParent;
    }
    return {x : x, y : y };
    }
    function addMark(p, x, y, index){
    var div = document.createElement("div");
    div.id = "" + index;
    div.className = "";
    div.style.left = x + "px";
    div.style.top = y + "px";
    p.appendChild(div);
    }
    function bindEvent(){
    $("map").ondblclick = function(oEvent){
    oEvent = oEvent || event;
    var container = $("container");
    var offset = getOffset(container);
    var x = oEvent.clientX - offset.x;
    var y = oEvent.clientY - offset.y;
    addMark(container, x, y, .length);
    .push(x + "," + y);
    saveMark();
    };
    }function saveMark(){
    setCookie("", .join("|"));
    }
    function loadMark(){
    var cookie = getCookie("");
    if(cookie){
     = cookie.split("|");
    var container = $("container");
    for(var i=0; i<.length; i++){
    addMark(container, [i].split(",")[0], [i].split(",")[1], i);
    }
    }
    }
    function clearMark(){
    var container = $("container");
    for(var i=0; i<.length; i++){
    container.removeChild($(""+i));
    }
    .length = 0;
    saveMark();
    }
    window.onload = function(){
    bindEvent();
    loadMark();
    };
    </script>
    </head><body>
    <div id="container">
    <div id="map">
    <img src="http://www.0755-0755.com/map/map/1.jpg" />
        </div>
    </div>
    <br />
    <input type="button" value="清除标记" onclick="clearMark()"/>
    </body>
    </html>