`
siser344
  • 浏览: 22159 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

ext google map

    博客分类:
  • ext
阅读更多
Ext的 Google Maps Demos: http://extjs.com/deploy/dev/examples/window/gmap.html

各位是不是很想吧这个地图整合到自己的项目中,让我们来看看代码咯,其实很简单的。
"Note that the js is not minified so it is readable. See Ext.ux.GMapPanel.js and gmap.js for the full source code."
Ext.ux.GMapPanel.js 是高人帮我们写好的一个自定义类,我们直接用就OK了,忽略。我们主要看的,是gmap.js这个文件。

打开文件,不是很长嘛,thank goodness 。首先吧代码收起来如下:
Ext.onReady(function(){
    var mapwin;
    var button = Ext.get('show-btn');
    button.on('click', function(){
        // create the window on the first click and reuse on subsequent clicks
        if(!mapwin){
            mapwin = new Ext.Window({......});
        }
        mapwin.show();
    });
});
很简单吧,绑定一个按钮,点击的时候,显示一个Window,Window的其他属性我们不看,直接看items。是一个Objecet。

    xtype 'gmappanel',这个在标准的Ext API里是没有的,这个类的定义,写在我们刚刚忽略的Ext.ux.GMapPanel.js里面。

    zoomLevel: 14,这个是地图的缩放等级,Google Map 一共定义了20个等级,从0 - 19,等缩放等级为19的时候,我们就能看到地球表面的平面图了。

    gmapType: 'map',这个属性我也不知道什么意思,我昨天才接触到Google Map,这个属性有两个值,一个是 'map',另一个是 'panorama',这里默认是 'map','panorama',字面上来看,应该是Google Map新出来的 360°C全景图。

    mapConfOpts:['enableScrollWheelZoom','enableDoubleClickZoom','enableDragging'] ,很容易看明白,配置地图的参数咯。是一个数组,元素是字符串类型的哟。这里的第一个元素'enableScrollWheelZoom',控制是否能够使用鼠标滚轮改变地图的缩放比例,'enableDoubleClickZoom',字面上的意思是控制是否能够用双击来缩小地图的缩放比例,不过我有把他去掉,但没有效果,依然可以双击缩小比例,郁闷。'enableDragging',用来控制,是否能够使用鼠标拖动地图。

    mapControls:['GSmallMapControl','GMapTypeControl','NonExistantControl'],这是控制地图上的控件的配置数组。'GSmallMapControl',在地图左上角显示小型平移/缩放控件,'GMapTypeControl',在地图的右上角显示可以切换地图类型(如“地图”和“卫星”)的按钮。第三个嘛,不知道有什么用,去掉也没有任何异常。

    markers: [{
        lat: 42.339641,
        lng: -71.094224,
        marker: {title: 'Boston Museum of Fine Arts'},
        listeners: {
            click: function(e){
                Ext.Msg.alert('Its fine', 'and its art.');
            }
        }
    },{......}]
    这个数组的没一个元素,都将在地图上以一个标记的形式出现,lat,lng,经纬度,Google Map上的所有定位,都是用经纬度来标记的。marker,标记的配置属性,是一个Object,可以定义title,鼠标放上去会显示的提示,还有icon,标记的图标,当然,定义图标并没有这么简单哟,还可以定义draggable,这是个布尔值,默认是false,控制是否能够移动标记,还有......自己看 API咯。listeners,这个,不用说了吧。当触发click事件的时候,执行所定义的方法。这里是弹出一个提示框。

     setCenter: {
        geoCodeAddr: '4 Yawkey Way, Boston, MA, 02215-3409, USA',
        marker: {title: 'Fenway Park'}
    }
    Google Map,除了缩放级别为20的时候,基本上都是要我们定一个中心点,以便显示这个中心点周围的地图。范例里面的marker跟上面markers数组里的定义是一样的。但这里多了一个geoCodeAddr属性,这个属性是字符类型,其实是一个地址,后台的JS会吧这个字符串发给Google服务器,然后查询出该地址的经纬度,然后再确定地图的中心。

    没有了,简单吧。顺便再说一句。geoCodeAddr这种方法,对中文似乎不是很支持,这个,只有老外用起来才会感觉到爽。没办法,谁叫这玩意不是我们中国人做的呢。有种办法可以解决咯,跟markers数组一样,用经纬度来确定咯(这里补充一下,将geoCodeAddr替换为lat,lng属性的时候,地图上的控件没有办法显示出来,我不知道为什么,希望高人能够指点一下,我暂时的解决办法是,将Ext.ux.GMapPanel.js文件中第74行的:GEvent.bind(this.gmap, 'load', this, function(){this.onMapReady();}); 改成 this.onMapReady();,这样写就OK了。)。一般,吧中心位置设置为 lat: 37, lng: 104,缩放比例为 4,就可以看到中国雄鸡的全身照了。然后接下来,就是经纬度我们怎么知道呢,这个简单,到网上查究是咯,百度一下,不要太多。不过大部分都不精确,如果你需要非常精确地经纬度的话,也很简单,拿这个例子来说,还记得刚刚那个click事件吗?还记得marker的配置属性draggable 吗?对了,我们可以把draggable设置成true,让标记可以移动,然后,当我们click标记的时候,click的监听函数,会得到一个参数,一个Object,我们直接alert这个这个参数,就可以得到当前标记所在位置的经纬度,我们也可以吧这个参数编译成JSON字符串,比如处在上海标记的JSON字符串为:{"Ue":31.228362369906602,"Va":121.47342681884766,"x":121.47342681884766,"y":31.228362369906602}。

    OK,差不多了,这个例子搞明白了,基本上Google Map的简单应用,大家应该都可以自己做出来了吧。比如 鼠标移动某个城市的标记上,显示这个城市的经纬度,天气,还有一些相关信息等等,或者跳转到另一个页面
分享到:
评论
2 楼 xisuchi 2011-02-25  
lat: 37, lng: 104 没有显示中国地图
1 楼 huang5787826 2011-01-21  
为什么我的地图初不来~~窗体有弹出来,左下角也显示了google ~但是弹出一个框框,“code 610 error returned” 地图就出不来了~~~why??

相关推荐

    Ext Google Map 简易开发框架

    Ext Google Map简易开发框架是一种将流行的JavaScript库ExtJs与Google Maps API相结合的开发方式,用于构建功能丰富的地理信息系统。这个框架允许开发者轻松地在网页上展示地图,管理地图图层,控制图层的可见性,...

    搭建简单的EXT-GWT(GXT)的开发环境(四)ext-gwt(gxt)结合google map第三版开发

    3. **使用EXT-GWT的Map组件**:EXT-GWT提供了一个Map组件,允许在应用中展示地图。在你的Java代码中,创建一个`com.extjs.gxt.ui.client.widget.map.Map`实例,设置地图的属性,如中心点、缩放级别等。记得添加API...

    google map api v3 ExtDraggableObject

    var map = new google.maps.Map(document.getElementById('map'), { center: {lat: -34.397, lng: 150.644}, zoom: 8 }); var marker = new ExtDraggableObject({ position: {lat: -34.397, lng: 150.644}, map...

    Extjs google map调用

    当我们需要在ExtJS应用中集成Google Map时,就需要理解如何调用Google Map API以及如何与ExtJS组件进行交互。 首先,让我们了解一下在ExtJS中调用Google Map的基本步骤: 1. **引入Google Maps API**:在HTML页面...

    yii-google-map-widget:用于创建谷歌地图并在其上设置标记的简单扩展

    $this->widget('ext.yii-google-map-widget-master.GoogleMap', array ( 'markers' => array ( array ( 'lat' => $latitude, 'lng' => $longitude, 'draggable'=>false, 'title'=>$item->name, '...

    ExtApp:ExtApp是一个基于三层架构,使用NHibernate,API Controller和ExttJs创建的,用于简化政府和企业应用开发的Web应用程序框架

    删除不符合时代潮流的经典风格,专注于现代风格,并修改cs尝试向Google物料设计风格靠拢。所有图标不再使用图片,替换字体文件。删除工作流和GIS等与框架核心不相关的内容,专注框架研发。升级ExtJs版本到最新版本。...

    ext-solrgeo:外部

    适用于TYPO3的Apache Solr的Solrgeo EXT:solrgeo是EXT:sor的附加组件,可为... Google Maps,Google Maps Business或OpenStreetMap的支持提供商 支持多个适配器:** CurlHttpAdapter ** SocketHttpAdapter ** Buzz

    latlong:纬度和经度选择器

    经纬度选择器/Latitude and longitude selector这个扩展用来帮助你在form表单中选择经纬度,用来替代Laravel-admin中内置的Form\Field\Map组件, 组件支持的地图包括Google map、百度地图、高德地图、腾讯地图、...

    lbm_libs_ext

    10. **API 集成**:可能与 Google Maps API、OpenStreetMap 或其他地图服务接口进行交互。 在 Java 环境下,lbm_libs_ext 库可能提供了以下功能: - 客户端和服务端的接口,便于与其他系统集成。 - 高效的空间索引...

    Extjs google maps添加标记,还支持中文

    map: mapPanel.getMap(), title: '中文标记标题' }); ``` 4. **处理中文地址**:如果你需要将中文地址解析为经纬度,可以使用Google Maps的`Geocoder`服务。先创建一个`Geocoder`实例,然后调用`geocode`方法,...

    andriod GIS客户端(RMaps)

    在Android平台上,RMaps利用了Google Maps API或其他开放源码的地图服务,例如OpenStreetMap,为用户提供丰富的地图功能。这些功能可能包括卫星视图、地形图、交通状况、街景以及自定义图层等。RMaps还支持离线地图...

    使用Google Maps API和Exif数据映射我的经验照片-JavaScript开发

    pip install -r requirements.txt用法修改run.py变量:file_folder = os.path.dirname(os.path.abspath(__ file__))+'/ static / img / map-my-experience'file_ext ='.JPG'修改map.html API KEY以包括Google ...

    java后台生成JSON数据

    - `JSONObject` 类:表示一个 JSON 对象,可以将 Java Map 或者键值对转换为 JSON 对象。 - `JSONArray` 类:表示一个 JSON 数组,可以将 Java 集合转换为 JSON 数组。 - `toString()` 方法:将 JSON 对象或数组...

    Ext5OpenLayers3:Sencha Architect + ExtJS 5.0 with OpenLayers 3.1.1 示例应用程序

    - **地图集成**:应用中的核心功能是地图展示,这通过OpenLayers实现,可以加载不同地图服务,例如Google Maps、Bing Maps或OpenStreetMap。 - **交互性**:用户可以进行缩放、平移、图层切换等操作,增强用户体验。...

    openlayers很多特效demo

    7. 地图服务集成:OpenLayers 可以与各种地图服务提供商(如Google Maps、Bing Maps、OpenStreetMap等)集成,展示不同来源的地图数据。 8. 数据源的动态加载和更新:OpenLayers 支持实时数据的加载和更新,这在...

    typo3插件

    T3v Maps是集成地图服务的插件,如Google Maps或OpenStreetMap。它可以轻松地在网站上添加交互式地图,标记地点,甚至创建自定义地图层。 7. **EXT:redirects** 这个插件帮助管理网站的重定向,确保旧链接更新为...

    bert_sentence_classification.7z

    哈工大hfl/chinese-bert-wwm-ext模型是BERT(Bidirectional Encoder Representations from Transformers)的变体,BERT是一种基于Transformer架构的深度学习模型,由Google在2018年提出。BERT的主要特点是利用了上...

    Android bikeroute自行车导航源码.zip

    这些数据可能来自API,例如OpenStreetMap或Google Places API。 4. **步骤指示**:BikeRoute提供了步行导航,这需要将规划的路径分解为可理解的步骤。开发者可能使用了Turn-by-Turn导航算法,结合地图数据和用户...

Global site tag (gtag.js) - Google Analytics