php 使用高德地图(一) 画多边形及编辑 获取坐标 (简单总结)

不言
发布: 2018-04-19 13:27:31
原创
3886人浏览过

这篇文章介绍的内容是关于php 使用高德地图(一) 画多边形及编辑 获取坐标 (简单总结),有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

首次使用高德api的话要先申请一个高德的key
主要说明:
1. 高德地图展示
2. 高德地图点击获取坐标
3. 高德地图鼠标绘制多边形

4. 高德地图鼠标 编辑多边形并获取坐标

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

<style>

    .map-list{float: left; margin-left: 10px;}

    .pbot10{ padding-bottom: 10px;}

    .marleft{ margin-left: 10px;}

    </style>

    <p class="panel panel-default">

        <p class="panel-body">       

        <p>           

        <p id="container" style="width: 70%; height: 500px; float: left;"></p>               

        <p style="margin-bottom: 5px;">                   

        <ul class="map-list-add">                       

        <?php

        foreach ($oldRegionArr as $k => $v):

        ?>                           

        <li>

        [<?=$v;?>],

        </li>                       

        <?php endforeach;?>                   

        </ul>                   

        <ul class="map-list-hidden hidden">                       

        <?php foreach ($oldLngLatArr as $key => $val):?>                           

        <li>                               

        <?php foreach ($val as $k => $v):?>                                   

        <span><?=$v;?></span>                               

        <?php endforeach;?>                           

        </li>                       

        <?php endforeach;?>                   

        </ul>                   

        <textarea class="form-control hidden" name="region" rows="3">

        </textarea>               

        </p>               

        <a class="btn btn-primary btn-sm fl" id="clearMarker" onclick="clearMap()">清空所有

        </a>               

        <a class="btn btn-primary btn-sm fl marleft" id="huaMarker">生成抢修范围

        </a>               

        <br><br>               

        <a class="btn btn-primary btn-sm fl marleft" id="PolyEditor" onClick="startEditPolygon()">开始编辑抢修范围

        </a>               

        <a class="btn btn-primary btn-sm fl marleft" id="CircleEditor" onClick="closeEditPolygon()">结束编辑抢修范围

        </a>           

        </p>       

        </p>   

        </p>

        </p>

        </p>

        <script type="text/javascript" src="http://webapi.amap.com/maps?v=1.4.4&key=高德key&plugin=AMap.MouseTool,AMap.PolyEditor,AMap.CircleEditor">

        </script>

        <script type="text/javascript">   

        var city  = '济南';   

        //生成地图   

        var map = new AMap.Map('container',{       

        resizeEnable: true,        zoom: 13   

        });   

        //地图上添加工具   

        AMap.plugin(['AMap.ToolBar','AMap.Scale','AMap.OverView'],       

        function() {

            map.addControl(new AMap.ToolBar());           

            map.addControl(new AMap.Scale());       

            });   

            //设置地图中心   

            var lngLat = map.getCenter();   

            var lng = lngLat.lng;   

            var lat = lngLat.lat;   

            if(city) {

        map.setCity("" + city + "");   

        } else {

        map.setCenter([lng, lat]);   

        }   

        //清空地图   

        function clearMap()

        {

        map.clearMap();       

        $('.map-list-add').html('');       

        positions = [];       

        $('textarea[name=region]').val('');       

        $('.map-list-hidden').html('');   

        }   

        //点击地图获取坐标   

        function huaNew()

        {       

        var positions = [];       

        //地图上点击事件       

        map.on('click', function(e)

         {           

         //显示点击的坐标           

         var lngLat = e.lnglat.getLng() + ',' + e.lnglat.getLat();           

         //将坐标填的 ul           

         var html = $('.map-list-add').html();           

         html += '<li>[' + lngLat + ']</li>';           

         positions.push([e.lnglat.getLng(), e.lnglat.getLat()]);           

         $('.map-list-add').html(html);       

         });   

         }   

         //画多边形的参数   

         var xian = {       

         strokeColor: "#FF33FF", //线颜色       

         strokeOpacity: 0.2, //线透明度       

         strokeWeight: 3,    //线宽       

         fillColor: "#1791fc", //填充色       

         fillOpacity: 0.35//填充透明度   

         };   

         //画多边形   

         var mouseTool = new AMap.MouseTool(map);  

         //在地图中添加MouseTool插件   

         AMap.event.addDomListener(document.getElementById('huaMarker'), 'click', function()

          {       

          clearMap();       

          huaNew();       

          mouseTool.polygon(xian);   

          }, false);   

          //默认加载的多边形   

          $(function ()

          {       

          var markers = [], positions = [];       

          var valRegion = '[116.97174,36.707879],[116.986675,36.681658],[116.983241,36.677665],[116.954059,36.675256],';       

          var len = $('.map-list-hidden li').length;       

          for(var p=0; p < len; p++) {           

          var posit = [];           

          var defaultLng = $('.map-list-hidden li:eq('+p+') span:eq(0)').html();           

          var defaultLat = $('.map-list-hidden li:eq('+p+') span:eq(1)').html();           

          posit.push(parseFloat(defaultLng));           

          posit.push(parseFloat(defaultLat));           

          positions.push(posit);       

          }       

          $('textarea[name=region]').val(valRegion);       

          //编辑多边形       

          var _polygon = (function(){           

          var arr = positions;           

          xian.path = positions;           

          xian.map = map;           

          return new AMap.Polygon(xian);       

          })();       

          //编辑多边形初始化       

          _polygonEditor = new AMap.PolyEditor(map, _polygon);       

          //开始编辑       

          startEditPolygon = function(){           

          _polygonEditor.open();       

          }       

          //结束编辑       

          closeEditPolygon = function(){           

          var html = '', htmlText = '';           

          _polygonEditor.close();           

          var a =  _polygon.getPath();           

          for(var q = 0; q < a.length; q++) {               

          var posit = [];               

          posit.push(parseFloat(a[q]['lng']));               

          posit.push(parseFloat(a[q]['lat']));               

          html += "<li>[" + posit + "],</li>";               

          htmlText += "[" + posit + "],";           

          }           

          $('.map-list-add').html(html);           

          $('textarea[name=region]').val(htmlText);       

          }

    });

    </script>

登录后复制



参考:

立即学习PHP免费学习笔记(深入)”;

http://lbs.amap.com/api/javascript-api/guide/create-map/show-map 显示地图

http://lbs.amap.com/api/javascript-api/guide/draw-on-map/marker-point  点标注

http://lbs.amap.com/api/javascript-api/example/marker/marker-content  点标注例子

http://lbs.amap.com/api/javascript-api/example/overlayers/polyline-circle-polygon 折线、多边形、圆例子

http://lbs.amap.com/api/javascript-api/example/mouse-operate-map/mouse-draw-overlayers 鼠标绘制点线面

http://lbs.amap.com/faq/web/javascript-api/327 鼠标工具绘制覆盖物,如何获取覆盖物的位置/范围/路径?

http://lbs.amap.com/api/javascript-api/example/overlayers/edit-polyline-circle-polygon 编辑折线、多边形、圆

http://lbs.amap.com/faq/web/javascript-api/editpolygon-getpath 编辑多边形后如何获取多边形的路径?


以上就是php 使用高德地图(一) 画多边形及编辑 获取坐标 (简单总结)的详细内容,更多请关注php中文网其它相关文章!

高德地图
高德地图

高德地图是国内专业的手机地图,超过3.2亿用户在使用!高德地图数据准确率高、省流量、躲避拥堵功能强大,平均每天为用户省油61万升,有需要的小伙伴快来保存下载体验吧!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号