地图实现定位搜索+编辑折线、多边形、圆

    <meta charset="utf-8">

    <meta http-equiv="X-UA-Compatible" content="IE=edge">

    <meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width">

    <title>编辑折线、多边形、圆

    <link rel="stylesheet" href="https://cache.amap.com/lbs/static/main1119.css"/>

    <script src="https://webapi.amap.com/maps?v=1.4.15&key=c8c550c7e31dfabfba5b78ecf75f9dee&plugin=AMap.Autocomplete,AMap.PlaceSearch,AMap.PolyEditor">

    <script type="text/javascript" src="https://cache.amap.com/lbs/static/addToolbar.js">

    <script src="https://lib.sinaapp.com/js/jquery/2.2.4/jquery-2.2.4.min.js" type="text/javascript" charset="utf-8">

    <script src="https://a.amap.com/jsapi_demos/static/demo-center/js/demoutils.js">

    <style type="text/css" media="screen">

        .button-group {position:absolute;top:0px;right:20px;font-size:12px;padding:10px;}

#myPageTop {

position:absolute;

            top:5px;

            left:0px;

            width:50%;

            background:#fff none repeat scroll 0 0;

            border:1px solid #ccc;

            margin:10px auto;

            padding:6px;

            font-family:"Microsoft Yahei", "΢���ź�", "Pinghei";

            font-size:14px;

        }

.button-group .button {

height:28px;

            line-height:28px;

            background-color:#0D9BF2;

            color:#FFF;

            border:0;

            outline:none;

            padding-left:5px;

            padding-right:5px;

            border-radius:3px;

            margin-bottom:4px;

            cursor:pointer;

            bottom:0;

            position:absolute;

            right:200%;

        }

<div id="container">

<div class="button-group">

    <input type="button" class="button" value="地图编辑完成" onClick="closeEditPolygon();"/>

<div id="myPageTop">

                <label>请输入关键字:

                <input id="tipinput"/>

<div style="position:absolute;bottom:4%;right:45%;" id="clear"><input type="button" class="button" value="清除标记点" onClick="clearMarks();"/>

    var editorTool, map =new AMap.Map("container", {

resizeEnable:true,

        searchOption: {

city:'银川市',

            citylimit:true

        },

        mapCenterJson:{'银川市':[106.258889,38.472273],'石嘴山市':[106.376173,39.01333],'吴忠市':[106.199409,37.986165],'固原市':[106.285241,36.004561],'中卫市':[105.189568,37.514951]},

        mapCenter:[106.258889,38.472273],

        zoom:16,

        mapStyle:"amap://styles/8b6be8ec497009e17a708205348b899a", //设置地图样式

        markers: [],

    });

    var beginNum =0;

    var clickListener ;

    var beginPoints;

    var beginMarks ;

    var polygonEditor;

    var resPolygon = [];

    var resNum =0;

    init();

    //输入提示

    var autoOptions = {

input:"tipinput",

    };

    var auto =new AMap.Autocomplete(autoOptions);

    var placeSearch =new AMap.PlaceSearch({

map:map

    });  //构造地点查询类

    AMap.event.addListener(auto, "select", select);//注册监听,当选中某条记录时会触发

    function select(e) {

placeSearch.setCity(e.poi.adcode);

        placeSearch.search(e.poi.name);  //关键字查询查询

    }

function init(){

beginPoints = [];

        beginMarks = [];

        beginNum =0;

        polygonEditor ='';

        clickListener = AMap.event.addListener(map, "click", mapOnClick);

    }

function mapOnClick(e) {

beginMarks.push(addMarker(e.lnglat));

        beginPoints.push(e.lnglat);

        beginNum++;

        if(beginNum ==3){

AMap.event.removeListener(clickListener);

            var polygon =createPolygon(beginPoints);

            polygonEditor =createEditor(polygon);

        }

};

    function createPolygon(arr){

var polygon =new AMap.Polygon({

map:map,

            path: arr,

            strokeColor:"#0000ff",

            strokeOpacity:1,

            strokeWeight:3,

            fillColor:"#f5deb3",

            fillOpacity:0.35

        });

        return polygon;

    }

function createEditor(polygon){

var polygonEditor =new AMap.PolyEditor(map, polygon);

        polygonEditor.open();

        AMap.event.addListener(polygonEditor,'end',polygonEnd);

        return polygonEditor;

    }

function closeEditPolygon(){

polygonEditor.close();

        window.location.assign('shebeibangding.html');

        //window.sj_fh();

    }

function sj_fh() {

window.history.back();

    }

function polygonEnd(res){

resPolygon.push(res.target);

        appendHideHtml(resNum,res.target.getPath());

        json2arr(res.target.getPath());

        resNum++;

        init();

    }

function appendHideHtml(index,arr){

var strify =JSON.stringify(arr);

        var html ='<input type="hidden" id="index'+index+'" name="paths[]" value="'+strify+'">';

        $('body').append(html);

    }

function clearMarks(){

window.location.reload();

    }

function json2arr(json){

var arr = json;

        var res = [];

        for (var i =0; i < arr.length; i++) {

var line = [];

            var jsstr =qqMapTransBMap(arr[i].lng, arr[i].lat)

res.push(jsstr)

};

        // console.log(res)

        localStorage.setItem('res',res);

    }

// 实例化点标记

    function addMarker(lnglat) {

var marker =new AMap.Marker({

icon:"http://webapi.amap.com/theme/v1.3/markers/n/mark_b.png",

            position: lnglat

});

        marker.setMap(map);

        return marker;

    }

function qqMapTransBMap(lng, lat) {

let x_pi =3.14159265358979324 *3000.0 /180.0;

        let x = lng;

        let y = lat;

        let z =Math.sqrt(x * x + y * y) +0.00002 *Math.sin(y * x_pi);

        let theta =Math.atan2(y, x) +0.000003 *Math.cos(x * x_pi);

        let lngs = z *Math.cos(theta) +0.0065;

        let lats = z *Math.sin(theta) +0.006;

        return "lng:" + lngs +",lat:"+lats

}

</html>


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 221,576评论 6 515
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,515评论 3 399
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 168,017评论 0 360
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,626评论 1 296
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,625评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,255评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,825评论 3 421
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,729评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,271评论 1 320
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,363评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,498评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,183评论 5 350
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,867评论 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,338评论 0 24
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,458评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,906评论 3 376
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,507评论 2 359

推荐阅读更多精彩内容