Edit in JSFiddle

/*
 说明:HTML5 定位示例
 开发者:wlygis
 时间:2014.1.15
 备注:版权所有请勿删除《开发者》
*/

var nav = null;
var gmapurl = "http://maps.google.com/maps/api/staticmap?markers=";
//地图初始化
function initmap() {
    // 创建高德地图
    amapInit();
    // 创建百度地图
    bdmap();
    // 验证浏览器是否支持 HTML5的定位接口
    isGeolocationAPIAvailable();
}

var pmap;
// 创建百度地图
function bdmap() {
    pmap = new BMap.Map("allmap");
    var point = new BMap.Point(116.404, 39.915);
    pmap.centerAndZoom(point, 13);
    pmap.enableScrollWheelZoom();
    pmap.addControl(new BMap.MapTypeControl({
        mapTypes: [BMAP_NORMAL_MAP, BMAP_HYBRID_MAP]
    }));

}

var mapObj, toolBar;
// 创建高德地图
function amapInit() {
    mapObj = new AMap.Map("iCenter", {
        center: new AMap.LngLat(116.397428, 39.90923), //地图中心点  
        level: 12 //地图显示的比例尺级别  
    });

    //添加地图类型切换插件  
    mapObj.plugin(["AMap.MapType"], function () {
        //地图类型切换  
        type = new AMap.MapType({
            defaultType: 1
        }); //初始状态使用2D地图  
        mapObj.addControl(type);
    });

    //地图中添加地图操作ToolBar插件  
    mapObj.plugin(["AMap.ToolBar"], function () {
        toolBar = new AMap.ToolBar(); //设置地位标记为自定义标记  
        mapObj.addControl(toolBar);
    });
}
// 验证浏览器
function isGeolocationAPIAvailable() {
    var location = "您的浏览器不支持IP定位!请使用IE10以上版本或者Chorme浏览";
    if (window.navigator.geolocation) {
        location = "您的浏览器支持IP定位!";
        nav = window.navigator;
    }
    document.getElementById("hint").innerHTML = location;
}

//调用HTML5接口实现IP定位 
function requestPosition() {
    if (nav != null) {
        var geoloc = nav.geolocation;
        if (geoloc != null) {
            geoloc.getCurrentPosition(successCallback);
        } else {
            alert("你的浏览器不支持 HTML5的Geolocation API!");
        }
    } else {
        alert("Navigator对象没有发现!");
    }
}
//监听IP位置变化 可以哟个clearwatch 结束监听
function listenForPositionUpdates() {
    if (nav != null) {
        var geoloc = nav.geolocation;
        if (geoloc != null) {
            watchID = geoloc.watchPosition(successCallback);
        } else {
            alert("你的浏览器不支持 HTML5的Geolocation API!");
        }
    } else {
        alert("Navigator对象没有发现!");
    }
}

var acc; //误差变量
//IP定位的回调函数;
function successCallback(position) {
    var x = position.coords.longitude;
    var y = position.coords.latitude;
    acc = position.coords.accuracy;
    document.getElementById("xy").value = y + "," + x;
    gmapurl = gmapurl + y + "," + x + "&zoom=19&size=400x400&sensor=false"
    var gpsPoint = new BMap.Point(x, y);
    //将GPS坐标进行转换,返回和百度地图匹配的坐标
    BMap.Convertor.translate(gpsPoint, 0, translateCallback); //真实经纬度转成百度坐标

}

//百度GPS坐标转换完之后的回调函数,创建标记。
function translateCallback(point) {
    var marker = new BMap.Marker(point);
    pmap.addOverlay(marker);
    var label = new BMap.Label("HTML5定位误差:" + acc, {
        offset: new BMap.Size(20, 10)
    });
    marker.setLabel(label); //添加百度label
    pmap.setZoom(16)
    pmap.setCenter(point);

    //根据坐标返回 Google Map的静态图片。
    var sContent = "<img style='margin:6px' id='imgDemo' src='" + gmapurl + "' width='300' height='300' title='Google Map'/>";
    var infoWindow = new BMap.InfoWindow(sContent); // 创建信息窗口对象
    marker.addEventListener("click", function () {
        this.openInfoWindow(infoWindow);
        //图片加载完毕重绘infowindow
        document.getElementById('imgDemo').onload = function () {
            infoWindow.redraw();
        }
    });

}

//百度地图的IP定位接口
function bdgetloc() {
    var geolocation = new BMap.Geolocation();
    geolocation.getCurrentPosition(function (r) {
        if (this.getStatus() == BMAP_STATUS_SUCCESS) {
            var mk = new BMap.Marker(r.point);
            pmap.addOverlay(mk);
            mk.setAnimation(BMAP_ANIMATION_BOUNCE);

            var label = new BMap.Label("BaiduAPI定位", {
                offset: new BMap.Size(20, -10)
            });
            mk.setLabel(label); //添加百度label

            pmap.panTo(r.point);
        } else {
            alert('定位失败错误编码:' + this.getStatus());
        }
    }, {
        enableHighAccuracy: true
    })
}