[大阪/横滨/德岛] 寻找基础设施/服务器端工程师!

[大阪/横滨/德岛] 寻找基础设施/服务器端工程师!

【超过500家企业部署】AWS搭建、运维、监控服务

【超过500家企业部署】AWS搭建、运维、监控服务

【CentOS的后继者】AlmaLinux OS服务器搭建/迁移服务

【CentOS的后继者】AlmaLinux OS服务器搭建/迁移服务

[仅适用于 WordPress] 云服务器“Web Speed”

[仅适用于 WordPress] 云服务器“Web Speed”

[便宜]网站安全自动诊断“快速扫描仪”

[便宜]网站安全自动诊断“快速扫描仪”

[预约系统开发] EDISONE定制开发服务

[预约系统开发] EDISONE定制开发服务

[注册100个URL 0日元] 网站监控服务“Appmill”

[注册100个URL 0日元] 网站监控服务“Appmill”

【兼容200多个国家】全球eSIM“超越SIM”

【兼容200多个国家】全球eSIM“超越SIM”

[如果您在中国旅行、出差或驻扎]中国SIM服务“Choco SIM”

[如果您在中国旅行、出差或驻扎]中国SIM服务“Choco SIM”

【全球专属服务】Beyond北美及中国MSP

【全球专属服务】Beyond北美及中国MSP

[YouTube]超越官方频道“美由丸频道”

[YouTube]超越官方频道“美由丸频道”

[TypeScript] 将 GoogleMapsAPI 与 ionic2 结合使用的示例 [Android/iOS]

大家好,我是网络团队的 Goto。

这是在 ionic2 中使用 GoogleMapsAPI 的示例。
英文有很多信息,但我认为有些人出于心理健康的原因不喜欢阅读英文,所以
我认为这本书对这些人很有用。

我认为这篇文章对于如何开始使用 ionic2 会有帮助。

了解如何使用 Ionic 与 @tyoshikawa1106 在 @Qiita 上的 The Ionic Book
http://qiita.com/tyoshikawa1106/items/cec9e893cb7449ba9ce7
我开始使用 Angular 2 + Ionic 2 by @creativewebjp on @Qiita
http://qiita.com/creativewebjp /项目/6986f97f8843e0157691

安装插件


我们使用一个名为
Google Maps plugin for Cordova 的通过使用插件,无需为 Android 和 iOS 编写单独的代码。
此外,由于它使用原生Google Maps SDK而不是Google Maps JavaScript API,因此
可以减少数据费用并且显示速度更快。

$ ionic 插件添加 cordova-plugin-googlemaps

*从现在开始,我将省略曾经写过的代码。

显示地图

使用方法如下。
在要显示地图的位置放置一个 div 元素,然后
执行 new GoogleMap('ID of the div you place');
*官网上的示例代码是一个带有GoogleMaps和“s”的陷阱。没有这样的班级!

从 '@angular/core' 导入 {Component};从 'ionic-native' 导入 {GoogleMap, GoogleMapsEvent};@Component({ 选择器:'地图画布',模板:'<div id="map_canvas" style="height: 100%; width: 100%;"></div> ' }) 导出类 MapComponent { private map: GoogleMap; constructor() { console.log("地图组件构造函数"); this.map = new GoogleMap('map_canvas');

地图

决定显示位置

显示地图后,我想决定在哪里显示它。
初始显示位置设置为允许世界地图在0度纬度和经度处显示的放大倍数。
确定地图的中心位置和放大倍数。

//导入新的GoogleMapsLatLng。从 'ionic-native' 导入 {GoogleMap, GoogleMapsEvent, GoogleMapsLatLng} 导出类 MapPage { constructor() { this.map = new GoogleMap.isAvailable().then(() => { this. map.one(GoogleMapsEvent.MAP_READY).then(() => { //用GoogleMapsLatLng创建坐标对象。let myPosition = new GoogleMapsLatLng('34.6687443', '135.4876302'); //用GoogleMap.setCenter设置中心坐标.map.setCenter(myPosition); //使用GoogleMap.setZoom设置放大倍数。值越大,显示的区域越窄 }) });

*Then 接收 Promise 的方法

.then((/* 承诺 */) => { /** ...处理... **/ });

Promise.prototype.then()
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Promise/then
箭头函数
https://developer.mozilla.org/ja/docs/Web/ JavaScript/参考/arrow_functions

地图位置设置

放置一个标记

设置一个标记。

//GoogleMapsMarkerOptions,导入一个新的GoogleMapsMarker。 import {GoogleMapsMarker, GoogleMapsMarkerOptions} from 'ionic-native'; export class MapComponent { private mark: GoogleMapsMarker; //声明一个变量来保存 constructor() { GoogleMap.isAvailable().then(() => { this.map. one(GoogleMapsEvent.MAP_READY).then(() => { let myPosition = new GoogleMapsLatLng('34.6687443', '135.4876302'); this.map.setCenter(myPosition); this.map.setZoom(15); //设置一个标记。 });

马卡-

允许通过拖动来移动标记

我之所以在设置marker时将其保存在this.marker中,是为了以后这样操作。

//设置可拖动选项 this.marker.setDraggable(true);

用线连接标记

//导入新的GoogleMapsPolyline。从 'ionic-native' 导入 {GoogleMapsPolyline} 导出类 MapComponent { 私有位置:数组<GoogleMapsLatLng>; //声明持有多个位置的变量类型私有标记:Array<GoogleMapsMarker> ; //声明将保存多个标记的变量类型 private poly_lines: Array<GoogleMapsPolyline> ; //声明保存多行的变量类型 //初始化多个位置 this.positions = [ new GoogleMapsLatLng('34.669', '135.485'), new GoogleMapsLatLng('34.68', '135.488') , new GoogleMapsLatLng(' 34.69', '135.485'), new GoogleMapsLatLng('34.66', '135.481'), ]; this.markers = Array(); //初始化保存标记的数组 this.poly_lines = Array ();保存行的数组 this.map.one(GoogleMapsEvent.MAP_READY).then() => { //在该位置设置一个标记 this.positions.forEach((position) => { this.map.addMarker({ position:position }).then((marker) => { this.markers.push(marker); //保留放置的标记 }); //在位置之间创建一条线 设置 this.positions.forEach(( position,index,positions) => { this.map.addPolyline({ if (index != 0) { points: [positions[index], Positions[index-1]], // 线条颜色的起点和终点: '#00A8E8', //线条颜色宽度: 1 //线条粗细 } }).then((poly_line) => { this.poly_lines.push(poly_line); //设置 }) });

画一条线

设一个圈

//导入一个新的GoogleMapsCircle。 import {GoogleMapsCircle} from 'ionic-native'; export class MapComponent { private Circle: GoogleMapsCircle; //声明保存圆的变量的类型 this.map.one(GoogleMapsEvent.MAP_READY).then(() => { //设置一个圆 let Circle_position = new GoogleMapsLatLng('34.6687443', '135.4876302'); this.map.addCircle({ center: Circle_position, //设置圆的中心坐标 radius: 100, //设置圆的半径(米单位) strokeColor: '#f53d3d', //设置圆外线的颜色 strokeWidth: 1, //设置圆外线的粗细 fillColor: ' #E6F7FF' //设置圆内部的颜色 }).then((circle) => { this.circle = Circle; //保留设置的圆 });

放一个圆圈

其他的

我可能会再写一遍,但如果您想做除这些之外的其他事情,

请阅读{project}/node_modules/ionic-native/dist/plugins/googlemaps.d.ts

诸如此类的方法有很多种。

/** * 获取可见区域 */ getVisibleRegion(): Promise<VisibleRegion> ; showDialog(): void; closeDialog(): void;<string> ; setCenter(latLng: GoogleMapsLatLng): void; setZoom(zoomLevel: number): void; setMapTypeId(typeId: string): void; setTilt(tiltLevel: number): void; CameraPosition): void; setMyLocationEnabled(启用: boolean): void; setIndoorEnabled(启用: boolean): void; setTrafficEnabled(启用: boolean): void; setCompassEnabled(启用: boolean): void; addMarker(选项:GoogleMapsMarkerOptions):承诺<GoogleMapsMarker>; addCircle(选项:GoogleMapsCircleOptions):承诺<GoogleMapsCircle>; addPolygon(选项:GoogleMapsPolygonOptions):承诺<GoogleMapsPolygon>; addPolyline(选项:GoogleMapsPolylineOptions):承诺<GoogleMapsPolyline>; addTileOverlay(选项:GoogleMapsTileOverlayOptions):承诺<GoogleMapsTileOverlay>; addGroundOverlay(选项:GoogleMapsGroundOverlayOptions):承诺<GoogleMapsGroundOverlay>; addKmlOverlay(选项:GoogleMapsKmlOverlayOptions):承诺<GoogleMapsKmlOverlay>; setDiv(domNode: HTMLElement): void; setVisible(visible: boolean): void; setOptions(options: any): void; setBackgroundColor(backgroundColor: string): void; ?:数字,左?:数字):void;refreshLayout():void;fromLatLngToPoint(latLng:GoogleMapsLatLng,点:任何):Promise<any> ; fromPointToLatLng(点: 任何, latLng: GoogleMapsLatLng): 承诺<GoogleMapsLatLng>; toDataURL(): 承诺<any>; 删除():无效():无效;

这些选项的底部有选项定义,所以如果你看看它们,你就能够使用它们! !

就是这样! !

如果您觉得这篇文章有帮助,请点赞!
0
加载中...
0 票,平均:0.00 / 10
789
X Facebook 哈特纳书签 口袋
[2025.6.30 Amazon Linux 2 支持结束] Amazon Linux 服务器迁移解决方案

[2025.6.30 Amazon Linux 2 支持结束] Amazon Linux 服务器迁移解决方案

[大阪/横滨] 积极招募基础设施工程师和服务器端工程师!

[大阪/横滨] 积极招募基础设施工程师和服务器端工程师!

写这篇文章的人

关于作者