JS调用百度地图拼接成路径,C#保存地图图片到本地

昨日公司要求做一个静态百度地图图片生成到本地的功能,以前没做过,这次小小总结一下

  百度地图API自己看(http://developer.baidu.com/map/index.php?title=static)

  当然首先得调用百度地图API,无非就是前台后台,,我是用JS写的,(http://www.cnblogs.com/kulong995/p/3368048.html)这个人写的不错,是用c#写的调用百度地图,写的很不错,可以看看

  百度地图是由一堆乱七八糟的数据拼接出来的路径,然而保存图片就需要用这个路径,所以首先要拿到这个路径

  在调用百度API时候,首先要有百度给你的路径调用才行

  比如

  不多说,直接上代码,

<body >
    地址:<input type="text" name="address" id="address" value="北京市" />
    <button id="mapsearch">搜索</button>
    <input type="button" id="uploadMap" value="导出地图" onclick="saveImg()" />
    <div style="width: 540px; height: 320px; border: 1px solid gray" id="container"></div>
    <p>
        <iframe id="testiframe" src="#" height="1" width="1"></iframe>
        <script type="text/javascript">
            var map = new BMap.Map("container"); // 创建地图实例
            var point = new BMap.Point(116.313127, 39.984242); // 创建点坐标
            map.centerAndZoom(point, 13);
            map.addControl(new BMap.NavigationControl());
            map.addControl(new BMap.ScaleControl());
            map.addControl(new BMap.OverviewMapControl());
            var marker = new BMap.Marker(point); // 创建标注
            map.addOverlay(marker); // 将标注添加到地图中
            marker.enableDragging();//可以拖拽

            var staticWith = 540;
            var staticHeight = 220;

            function initMap() {
                var mapsearch = document.getElementById("mapsearch");
                mapsearch.onclick = function () {
                    var address = document.getElementById("address").value;
                    if (address == "undefined" || address == "") {
                        alert("请输入地址,再进行搜索!");
                        return;
                    }
                    var myGeo = new BMap.Geocoder();
                    myGeo.getPoint(address, function (point) {
                        if (point) {
                            marker.setPosition(point);//重新设置标注的坐标
                            window.setTimeout(function () {//移动地图
                                map.panTo(point);
                            }, 2000);
                        }
                    }, "上海市");
                }
                //生成图片
                var mapsearch = document.getElementById("uploadMap");
                mapsearch.onclick = function () {
                    testStaticMap();
                }
                function getStaticMap() {
                    if (map == ‘‘ || map == ‘undefined‘ || marker == ‘‘) {
                        return;
                    }
                    var center = map.getCenter().lng + ‘,‘ + map.getCenter().lat;
                    var markers = marker.getPosition().lng + ‘,‘ + marker.getPosition().lat;
                    var zoom = map.getZoom();
                    var staticmapstr = ‘http://api.map.baidu.com/staticimage?center=‘ + center + ‘&markers=‘ + markers + ‘&zoom=‘ + zoom + ‘&width=‘ + staticWith + ‘&height=‘ + staticHeight;
                    //alert(staticmapstr);//生成的图片地址 

                    return staticmapstr;
                }

                function testStaticMap() {
                    var testiframe = document.getElementById("testiframe");
                    if (testiframe == "undefined" || testiframe == null || testiframe.src == "undefined") {
                        return;
                    }
                    testiframe.src = getStaticMap();
                    testiframe.width = staticWith;
                    testiframe.height = staticHeight;

                    testiframe.document.execCommand("SaveAs");
                    alert(testiframe);
                    //http://api.map.baidu.com/staticimage?center=116.313127,39.984242&markers=116.313127,39.984242&zoom=13&width=540&height=220
                    //DownLoadReportIMG(getStaticMap());
                }
            }

        </script>
</body>

功能没有完全实现,凑合着看吧,这个时候是已经拿到图片URL了,,只要用AJAX吧URL传到一般处理程序.ashx中,c#保存即可,,

C#保存图片代码段:

using (WebClient wc = new WebClient())
                    {
                        wc.DownloadFile(url(图片路径), saveFile(保存文件夹路径));
                    }

大工告成!!!

时间: 2024-10-25 15:37:18

JS调用百度地图拼接成路径,C#保存地图图片到本地的相关文章

Node.js调用百度地图Web服务API的Geocoding接口进行点位反地理信息编码

(从我的新浪博客上搬来的,做了一些修改.) 最近迷上了node.js以及JavaScript.现在接到一个活,要解析一个出租车点位数据的地理信息.于是就想到使用Node.js调用百度地图API进行解析. 使用的库主要就是有fs.request. // 请求包 var fs = require('fs');var request = require('request'); // 设置百度API的参数var baiduApiKey = "cQV9U4QhamoOjg6rjdOTAQSiUMxxxxx

js 调用百度地图,并且定位用户地址,显示省市区街,经纬度

网上的一些百度地图例子,基本上没有连套的 定位 例子.下面我分享一套我自己弄的,废话不多说,看代码,里面有注释! 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> 5 <meta http-equiv="Content-Type"

JS调用百度地图API标记地点

<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> <style type

JS调用百度 apistore 的api

第一次调用api,耗费了整个下午的时间,谨以这篇文章记录感想和教训. 效果图:    效果说明:点击按钮“新游记”,body.button 的背景颜色.字体颜色,都会改变. html部分 1 <div class="container"> 2 <div id="content"> 3 <p id="infoTime"></p> <!--游记发表时间--> 4 <h1><

C#调用百度地图 api

转  http://blog.csdn.net/kkkkkxiaofei/article/details/8663377 这一篇,记录一下我调用的地图API实现的功能.下面介绍的都是一些片段的节选,不能直接复制就运行.在实现之前肯定要加载地图,先放一个webbroser控件,然后如下: [csharp] view plaincopyprint? private void Form1_Load(object sender, EventArgs e) { string str_url = Appli

ionic 调用百度地图API,并定位当前位置示例

首先,可以参考JS版本的百度地图API示例. 由于在ionic程序中,我们一般使用的ES5 或 ES6 或者是Typescript. 这与JS 还有有一些区别的.所以,在我们的程序中,代码与官方示例代码格式上不完全相同. 下面,简单说明一下如何在 ionic 程序中 调用 百度地图API. 1. 在ionic程序中,定位到文件: \src\index.html.  添加如下代码 , 注意将"您的密钥" 替换成 您申请的密钥 <script type="text/java

微信小程序--百度地图坐标转换成腾讯地图坐标

最近开发小程序时出现一个问题,后台程序坐标采用的时百度地图的坐标,因为小程序地图时采用的腾讯地图的坐标系,两种坐标有一定的误差,导致位置信息显示不正确.现在需要一个可以转换两种坐标的方法,经过查询发现腾讯地图提供了一个接口用来将多种坐标类型转换成腾讯可用的坐标. 方法如下: reverseGeocoder(options:Object) 本接口提供由坐标到坐标所在位置的文字描述的转换,输入坐标返回地理位置信息和附近poi列表. options参数属性说明: 如图上所示,只需要传递坐标时加上参数c

微信接口调用百度地图api实现微信公众号打卡

前言 因最近给的需求要在微信公众号完成考勤打卡,刚开始说根据员工连接公司的wifi去判断,网上查了下java好像没得这个功能,所以只能选择在地图来完成. 本人也是第一次接触微信公众号,所以刚开始动手比较困难,好在经过一番摸索还是完成了.这里记录下自己的地图方案. 准备工作 既然是微信公众号肯定是基于微信接口的,也不用想的那么复杂,其实就是基于前台weui样式+微信js接口.下面详细说明步骤. 首先需要在公众号设置功能设置中配置微信公众号js接口安全域名 按流程把文件放在项目工程静态资源下 另外在

苹果手机 微信调用百度地图Javascript API 频繁闪退问题

最近在网页中调用百度地图API js大众版,但是在IOS8系统中,缩放的时候频繁闪退,安卓手机没有这个问题! 在网上查询了下,有网友回答说不要频繁的去new marker,而是初始化话一定量的marker,然后setPosition.但是我的页面中匹配当前城市 注入marker也没有几个,所以排除这答案. 最后发现有网友说版本不稳定引起的,于是把百度地图API回退到了1.5,结果还真是可以了.