Commit 3ca95954 authored by 7c00's avatar 7c00

实现 Android 海量点图层接口

相关:#51
parent 1908456e
......@@ -24,6 +24,7 @@ class AMap3DPackage : ReactPackage {
AMapPolygonManager(),
AMapCircleManager(),
AMapHeatMapManager(),
AMapMultiPointManager(),
AMapDriveManager(),
AMapWalkManager(),
AMapRideManager()
......
package cn.qiuxiang.react.amap3d.maps
import android.content.Context
import com.amap.api.maps.AMap
import com.amap.api.maps.model.*
import com.facebook.react.bridge.ReadableArray
import com.facebook.react.views.view.ReactViewGroup
class AMapMultiPoint(context: Context) : ReactViewGroup(context), AMapOverlay {
private var overlay: MultiPointOverlay? = null
private var items: ArrayList<MultiPointItem> = ArrayList()
private var icon: BitmapDescriptor? = null
fun setPoints(points: ReadableArray) {
items = ArrayList((0 until points.size())
.map {
val data = points.getMap(it)
val item = MultiPointItem(LatLng(
data.getDouble("latitude"),
data.getDouble("longitude")))
if (data.hasKey("title")) {
item.title = data.getString("title")
}
if (data.hasKey("subtitle")) {
item.snippet = data.getString("subtitle")
}
item.customerId = id.toString() + "_" + it
item
})
overlay?.setItems(items)
}
override fun add(map: AMap) {
overlay = map.addMultiPointOverlay(MultiPointOverlayOptions().icon(icon))
overlay?.setItems(items)
overlay?.setEnable(true)
}
override fun remove() {
overlay?.destroy()
}
fun setImage(image: String) {
val drawable = context.resources.getIdentifier(image, "drawable", context.packageName)
icon = BitmapDescriptorFactory.fromResource(drawable)
}
}
\ No newline at end of file
package cn.qiuxiang.react.amap3d.maps
import com.facebook.react.bridge.ReadableArray
import com.facebook.react.bridge.ReadableMap
import com.facebook.react.common.MapBuilder
import com.facebook.react.uimanager.SimpleViewManager
import com.facebook.react.uimanager.ThemedReactContext
import com.facebook.react.uimanager.annotations.ReactProp
internal class AMapMultiPointManager : SimpleViewManager<AMapMultiPoint>() {
override fun getName(): String {
return "AMapMultiPoint"
}
override fun createViewInstance(reactContext: ThemedReactContext): AMapMultiPoint {
return AMapMultiPoint(reactContext)
}
override fun getExportedCustomDirectEventTypeConstants(): Map<String, Any>? {
return MapBuilder.of(
"onItemPress", MapBuilder.of("registrationName", "onItemPress")
)
}
@ReactProp(name = "points")
fun setPoints(multiPoint: AMapMultiPoint, points: ReadableArray) {
multiPoint.setPoints(points)
}
@ReactProp(name = "image")
fun setImage(multiPoint: AMapMultiPoint, image: String) {
multiPoint.setImage(image);
}
}
\ No newline at end of file
......@@ -94,6 +94,14 @@ class AMapView(context: Context) : TextureMapView(context) {
emit(polylines[polyline.id]?.id, "onPress")
}
map.setOnMultiPointClickListener { item ->
val slice = item.customerId.split("_")
val data = Arguments.createMap()
data.putInt("index", slice[1].toInt())
emit(slice[0].toInt(), "onItemPress", data)
false
}
map.setInfoWindowAdapter(AMapInfoWindowAdapter(context, markers))
}
......
import React, {PropTypes, PureComponent} from 'react'
import {requireNativeComponent, resolveAssetSource, ViewPropTypes} from 'react-native'
export default class MultiPoint extends PureComponent {
static propTypes = {
...ViewPropTypes,
/**
* 节点
*/
points: PropTypes.arrayOf(
PropTypes.shape({
latitude: PropTypes.number.isRequired,
longitude: PropTypes.number.isRequired,
title: PropTypes.string,
subtitle: PropTypes.string,
})
).isRequired,
/**
* 图标
*/
image: PropTypes.string,
/**
* 点击事件
*/
onItemPress: React.PropTypes.func,
}
_onItemPress = event => {
if (this.props.onItemPress) {
this.props.onItemPress(this.props.points[event.nativeEvent.index])
}
}
render() {
return <AMapMultiPoint {...this.props} onItemPress={this._onItemPress}/>
}
}
const AMapMultiPoint = requireNativeComponent('AMapMultiPoint', MultiPoint)
......@@ -2021,9 +2021,9 @@
"integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0="
},
"hoist-non-react-statics": {
"version": "1.2.0",
"resolved": "http://registry.npm.taobao.org/hoist-non-react-statics/download/hoist-non-react-statics-1.2.0.tgz",
"integrity": "sha1-qkSM8JhtVcxAdzsXF0t90GbLfPs="
"version": "2.3.1",
"resolved": "http://registry.npm.taobao.org/hoist-non-react-statics/download/hoist-non-react-statics-2.3.1.tgz",
"integrity": "sha1-ND24TGAYxlB3iJgkATWhQg7iLOA="
},
"home-or-tmp": {
"version": "2.0.0",
......@@ -2139,191 +2139,979 @@
"ansi-regex": "3.0.0"
}
},
"supports-color": {
"version": "4.2.1",
"resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-4.2.1.tgz",
"integrity": "sha1-ZaS7JjHpDgJCDbpVVMN1pHVLuDY=",
"supports-color": {
"version": "4.2.1",
"resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-4.2.1.tgz",
"integrity": "sha1-ZaS7JjHpDgJCDbpVVMN1pHVLuDY=",
"requires": {
"has-flag": "2.0.0"
}
}
}
},
"invariant": {
"version": "2.2.2",
"resolved": "http://registry.npm.taobao.org/invariant/download/invariant-2.2.2.tgz",
"integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=",
"requires": {
"loose-envify": "1.3.1"
}
},
"invert-kv": {
"version": "1.0.0",
"resolved": "http://registry.npm.taobao.org/invert-kv/download/invert-kv-1.0.0.tgz",
"integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY="
},
"is-arrayish": {
"version": "0.2.1",
"resolved": "http://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.2.1.tgz",
"integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0="
},
"is-buffer": {
"version": "1.1.5",
"resolved": "http://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.5.tgz",
"integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw="
},
"is-builtin-module": {
"version": "1.0.0",
"resolved": "http://registry.npm.taobao.org/is-builtin-module/download/is-builtin-module-1.0.0.tgz",
"integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
"requires": {
"builtin-modules": "1.1.1"
}
},
"is-dotfile": {
"version": "1.0.3",
"resolved": "http://registry.npm.taobao.org/is-dotfile/download/is-dotfile-1.0.3.tgz",
"integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE="
},
"is-equal-shallow": {
"version": "0.1.3",
"resolved": "http://registry.npm.taobao.org/is-equal-shallow/download/is-equal-shallow-0.1.3.tgz",
"integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=",
"requires": {
"is-primitive": "2.0.0"
}
},
"is-extendable": {
"version": "0.1.1",
"resolved": "http://registry.npm.taobao.org/is-extendable/download/is-extendable-0.1.1.tgz",
"integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik="
},
"is-extglob": {
"version": "1.0.0",
"resolved": "http://registry.npm.taobao.org/is-extglob/download/is-extglob-1.0.0.tgz",
"integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA="
},
"is-finite": {
"version": "1.0.2",
"resolved": "http://registry.npm.taobao.org/is-finite/download/is-finite-1.0.2.tgz",
"integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
"requires": {
"number-is-nan": "1.0.1"
}
},
"is-fullwidth-code-point": {
"version": "2.0.0",
"resolved": "http://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz",
"integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
},
"is-glob": {
"version": "2.0.1",
"resolved": "http://registry.npm.taobao.org/is-glob/download/is-glob-2.0.1.tgz",
"integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
"requires": {
"is-extglob": "1.0.0"
}
},
"is-number": {
"version": "2.1.0",
"resolved": "http://registry.npm.taobao.org/is-number/download/is-number-2.1.0.tgz",
"integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=",
"requires": {
"kind-of": "3.2.2"
}
},
"is-posix-bracket": {
"version": "0.1.1",
"resolved": "http://registry.npm.taobao.org/is-posix-bracket/download/is-posix-bracket-0.1.1.tgz",
"integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q="
},
"is-primitive": {
"version": "2.0.0",
"resolved": "http://registry.npm.taobao.org/is-primitive/download/is-primitive-2.0.0.tgz",
"integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU="
},
"is-promise": {
"version": "2.1.0",
"resolved": "http://registry.npm.taobao.org/is-promise/download/is-promise-2.1.0.tgz",
"integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o="
},
"is-stream": {
"version": "1.1.0",
"resolved": "http://registry.npm.taobao.org/is-stream/download/is-stream-1.1.0.tgz",
"integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ="
},
"is-typedarray": {
"version": "1.0.0",
"resolved": "http://registry.npm.taobao.org/is-typedarray/download/is-typedarray-1.0.0.tgz",
"integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
},
"is-utf8": {
"version": "0.2.1",
"resolved": "http://registry.npm.taobao.org/is-utf8/download/is-utf8-0.2.1.tgz",
"integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI="
},
"isarray": {
"version": "1.0.0",
"resolved": "http://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz",
"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
},
"isexe": {
"version": "2.0.0",
"resolved": "http://registry.npm.taobao.org/isexe/download/isexe-2.0.0.tgz",
"integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
},
"isobject": {
"version": "2.1.0",
"resolved": "http://registry.npm.taobao.org/isobject/download/isobject-2.1.0.tgz",
"integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
"requires": {
"isarray": "1.0.0"
}
},
"isomorphic-fetch": {
"version": "2.2.1",
"resolved": "http://registry.npm.taobao.org/isomorphic-fetch/download/isomorphic-fetch-2.2.1.tgz",
"integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=",
"requires": {
"node-fetch": "1.7.2",
"whatwg-fetch": "2.0.3"
}
},
"isstream": {
"version": "0.1.2",
"resolved": "http://registry.npm.taobao.org/isstream/download/isstream-0.1.2.tgz",
"integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
},
"jest-docblock": {
"version": "20.1.0-echo.1",
"resolved": "http://registry.npm.taobao.org/jest-docblock/download/jest-docblock-20.1.0-echo.1.tgz",
"integrity": "sha1-vgL0PuAZ+X5rgyZ8dGrHtA0pD+g="
},
"jest-haste-map": {
"version": "20.1.0-alpha.3",
"resolved": "http://registry.npm.taobao.org/jest-haste-map/download/jest-haste-map-20.1.0-alpha.3.tgz",
"integrity": "sha1-N6HuomfNdwuZEUo5wEmih1Ae33I=",
"requires": {
"fb-watchman": "2.0.0",
"graceful-fs": "4.1.11",
"jest-docblock": "20.1.0-echo.1",
"micromatch": "2.3.11",
"sane": "2.0.0",
"worker-farm": "1.5.0"
},
"dependencies": {
"sane": {
"version": "2.0.0",
"resolved": "http://registry.npm.taobao.org/sane/download/sane-2.0.0.tgz",
"integrity": "sha1-mct58h9KU6adTQzZV8LbBAJLjrI=",
"requires": {
"anymatch": "1.3.2",
"exec-sh": "0.2.0",
"fb-watchman": "2.0.0",
"fsevents": "1.1.2",
"minimatch": "3.0.4",
"minimist": "1.2.0",
"walker": "1.0.7",
"watch": "0.10.0"
},
"dependencies": {
"fsevents": {
"version": "1.1.2",
"resolved": "http://registry.npm.taobao.org/fsevents/download/fsevents-1.1.2.tgz",
"integrity": "sha1-MoK3E/s62A7eDp/PRhG1qm/AM/Q=",
"optional": true,
"requires": {
"nan": "2.7.0",
"node-pre-gyp": "0.6.36"
},
"dependencies": {
"abbrev": {
"version": "1.1.0",
"bundled": true,
"optional": true
},
"ajv": {
"version": "4.11.8",
"bundled": true,
"optional": true,
"requires": {
"co": "4.6.0",
"json-stable-stringify": "1.0.1"
}
},
"ansi-regex": {
"version": "2.1.1",
"bundled": true
},
"aproba": {
"version": "1.1.1",
"bundled": true,
"optional": true
},
"are-we-there-yet": {
"version": "1.1.4",
"bundled": true,
"optional": true,
"requires": {
"delegates": "1.0.0",
"readable-stream": "2.2.9"
}
},
"asn1": {
"version": "0.2.3",
"bundled": true,
"optional": true
},
"assert-plus": {
"version": "0.2.0",
"bundled": true,
"optional": true
},
"asynckit": {
"version": "0.4.0",
"bundled": true,
"optional": true
},
"aws-sign2": {
"version": "0.6.0",
"bundled": true,
"optional": true
},
"aws4": {
"version": "1.6.0",
"bundled": true,
"optional": true
},
"balanced-match": {
"version": "0.4.2",
"bundled": true
},
"bcrypt-pbkdf": {
"version": "1.0.1",
"bundled": true,
"optional": true,
"requires": {
"tweetnacl": "0.14.5"
}
},
"block-stream": {
"version": "0.0.9",
"bundled": true,
"requires": {
"inherits": "2.0.3"
}
},
"boom": {
"version": "2.10.1",
"bundled": true,
"requires": {
"hoek": "2.16.3"
}
},
"brace-expansion": {
"version": "1.1.7",
"bundled": true,
"requires": {
"balanced-match": "0.4.2",
"concat-map": "0.0.1"
}
},
"buffer-shims": {
"version": "1.0.0",
"bundled": true
},
"caseless": {
"version": "0.12.0",
"bundled": true,
"optional": true
},
"co": {
"version": "4.6.0",
"bundled": true,
"optional": true
},
"code-point-at": {
"version": "1.1.0",
"bundled": true
},
"combined-stream": {
"version": "1.0.5",
"bundled": true,
"requires": {
"delayed-stream": "1.0.0"
}
},
"concat-map": {
"version": "0.0.1",
"bundled": true
},
"console-control-strings": {
"version": "1.1.0",
"bundled": true
},
"core-util-is": {
"version": "1.0.2",
"bundled": true
},
"cryptiles": {
"version": "2.0.5",
"bundled": true,
"optional": true,
"requires": {
"boom": "2.10.1"
}
},
"dashdash": {
"version": "1.14.1",
"bundled": true,
"optional": true,
"requires": {
"assert-plus": "1.0.0"
},
"dependencies": {
"assert-plus": {
"version": "1.0.0",
"bundled": true,
"optional": true
}
}
},
"debug": {
"version": "2.6.8",
"bundled": true,
"optional": true,
"requires": {
"ms": "2.0.0"
}
},
"deep-extend": {
"version": "0.4.2",
"bundled": true,
"optional": true
},
"delayed-stream": {
"version": "1.0.0",
"bundled": true
},
"delegates": {
"version": "1.0.0",
"bundled": true,
"optional": true
},
"ecc-jsbn": {
"version": "0.1.1",
"bundled": true,
"optional": true,
"requires": {
"jsbn": "0.1.1"
}
},
"extend": {
"version": "3.0.1",
"bundled": true,
"optional": true
},
"extsprintf": {
"version": "1.0.2",
"bundled": true
},
"forever-agent": {
"version": "0.6.1",
"bundled": true,
"optional": true
},
"form-data": {
"version": "2.1.4",
"bundled": true,
"optional": true,
"requires": {
"asynckit": "0.4.0",
"combined-stream": "1.0.5",
"mime-types": "2.1.15"
}
},
"fs.realpath": {
"version": "1.0.0",
"bundled": true
},
"fstream": {
"version": "1.0.11",
"bundled": true,
"requires": {
"graceful-fs": "4.1.11",
"inherits": "2.0.3",
"mkdirp": "0.5.1",
"rimraf": "2.6.1"
}
},
"fstream-ignore": {
"version": "1.0.5",
"bundled": true,
"optional": true,
"requires": {
"fstream": "1.0.11",
"inherits": "2.0.3",
"minimatch": "3.0.4"
}
},
"gauge": {
"version": "2.7.4",
"bundled": true,
"optional": true,
"requires": {
"aproba": "1.1.1",
"console-control-strings": "1.1.0",
"has-unicode": "2.0.1",
"object-assign": "4.1.1",
"signal-exit": "3.0.2",
"string-width": "1.0.2",
"strip-ansi": "3.0.1",
"wide-align": "1.1.2"
}
},
"getpass": {
"version": "0.1.7",
"bundled": true,
"optional": true,
"requires": {
"assert-plus": "1.0.0"
},
"dependencies": {
"assert-plus": {
"version": "1.0.0",
"bundled": true,
"optional": true
}
}
},
"glob": {
"version": "7.1.2",
"bundled": true,
"requires": {
"fs.realpath": "1.0.0",
"inflight": "1.0.6",
"inherits": "2.0.3",
"minimatch": "3.0.4",
"once": "1.4.0",
"path-is-absolute": "1.0.1"
}
},
"graceful-fs": {
"version": "4.1.11",
"bundled": true
},
"har-schema": {
"version": "1.0.5",
"bundled": true,
"optional": true
},
"har-validator": {
"version": "4.2.1",
"bundled": true,
"optional": true,
"requires": {
"ajv": "4.11.8",
"har-schema": "1.0.5"
}
},
"has-unicode": {
"version": "2.0.1",
"bundled": true,
"optional": true
},
"hawk": {
"version": "3.1.3",
"bundled": true,
"optional": true,
"requires": {
"boom": "2.10.1",
"cryptiles": "2.0.5",
"hoek": "2.16.3",
"sntp": "1.0.9"
}
},
"hoek": {
"version": "2.16.3",
"bundled": true
},
"http-signature": {
"version": "1.1.1",
"bundled": true,
"optional": true,
"requires": {
"assert-plus": "0.2.0",
"jsprim": "1.4.0",
"sshpk": "1.13.0"
}
},
"inflight": {
"version": "1.0.6",
"bundled": true,
"requires": {
"once": "1.4.0",
"wrappy": "1.0.2"
}
},
"inherits": {
"version": "2.0.3",
"bundled": true
},
"ini": {
"version": "1.3.4",
"bundled": true,
"optional": true
},
"is-fullwidth-code-point": {
"version": "1.0.0",
"bundled": true,
"requires": {
"number-is-nan": "1.0.1"
}
},
"is-typedarray": {
"version": "1.0.0",
"bundled": true,
"optional": true
},
"isarray": {
"version": "1.0.0",
"bundled": true
},
"isstream": {
"version": "0.1.2",
"bundled": true,
"optional": true
},
"jodid25519": {
"version": "1.0.2",
"bundled": true,
"optional": true,
"requires": {
"jsbn": "0.1.1"
}
},
"jsbn": {
"version": "0.1.1",
"bundled": true,
"optional": true
},
"json-schema": {
"version": "0.2.3",
"bundled": true,
"optional": true
},
"json-stable-stringify": {
"version": "1.0.1",
"bundled": true,
"optional": true,
"requires": {
"jsonify": "0.0.0"
}
},
"json-stringify-safe": {
"version": "5.0.1",
"bundled": true,
"optional": true
},
"jsonify": {
"version": "0.0.0",
"bundled": true,
"optional": true
},
"jsprim": {
"version": "1.4.0",
"bundled": true,
"optional": true,
"requires": {
"assert-plus": "1.0.0",
"extsprintf": "1.0.2",
"json-schema": "0.2.3",
"verror": "1.3.6"
},
"dependencies": {
"assert-plus": {
"version": "1.0.0",
"bundled": true,
"optional": true
}
}
},
"mime-db": {
"version": "1.27.0",
"bundled": true
},
"mime-types": {
"version": "2.1.15",
"bundled": true,
"requires": {
"mime-db": "1.27.0"
}
},
"minimatch": {
"version": "3.0.4",
"bundled": true,
"requires": {
"brace-expansion": "1.1.7"
}
},
"minimist": {
"version": "0.0.8",
"bundled": true
},
"mkdirp": {
"version": "0.5.1",
"bundled": true,
"requires": {
"minimist": "0.0.8"
}
},
"ms": {
"version": "2.0.0",
"bundled": true,
"optional": true
},
"node-pre-gyp": {
"version": "0.6.36",
"bundled": true,
"optional": true,
"requires": {
"mkdirp": "0.5.1",
"nopt": "4.0.1",
"npmlog": "4.1.0",
"rc": "1.2.1",
"request": "2.81.0",
"rimraf": "2.6.1",
"semver": "5.3.0",
"tar": "2.2.1",
"tar-pack": "3.4.0"
}
},
"nopt": {
"version": "4.0.1",
"bundled": true,
"optional": true,
"requires": {
"abbrev": "1.1.0",
"osenv": "0.1.4"
}
},
"npmlog": {
"version": "4.1.0",
"bundled": true,
"optional": true,
"requires": {
"are-we-there-yet": "1.1.4",
"console-control-strings": "1.1.0",
"gauge": "2.7.4",
"set-blocking": "2.0.0"
}
},
"number-is-nan": {
"version": "1.0.1",
"bundled": true
},
"oauth-sign": {
"version": "0.8.2",
"bundled": true,
"optional": true
},
"object-assign": {
"version": "4.1.1",
"bundled": true,
"optional": true
},
"once": {
"version": "1.4.0",
"bundled": true,
"requires": {
"wrappy": "1.0.2"
}
},
"os-homedir": {
"version": "1.0.2",
"bundled": true,
"optional": true
},
"os-tmpdir": {
"version": "1.0.2",
"bundled": true,
"optional": true
},
"osenv": {
"version": "0.1.4",
"bundled": true,
"optional": true,
"requires": {
"os-homedir": "1.0.2",
"os-tmpdir": "1.0.2"
}
},
"path-is-absolute": {
"version": "1.0.1",
"bundled": true
},
"performance-now": {
"version": "0.2.0",
"bundled": true,
"optional": true
},
"process-nextick-args": {
"version": "1.0.7",
"bundled": true
},
"punycode": {
"version": "1.4.1",
"bundled": true,
"optional": true
},
"qs": {
"version": "6.4.0",
"bundled": true,
"optional": true
},
"rc": {
"version": "1.2.1",
"bundled": true,
"optional": true,
"requires": {
"deep-extend": "0.4.2",
"ini": "1.3.4",
"minimist": "1.2.0",
"strip-json-comments": "2.0.1"
},
"dependencies": {
"minimist": {
"version": "1.2.0",
"bundled": true,
"optional": true
}
}
},
"readable-stream": {
"version": "2.2.9",
"bundled": true,
"requires": {
"buffer-shims": "1.0.0",
"core-util-is": "1.0.2",
"inherits": "2.0.3",
"isarray": "1.0.0",
"process-nextick-args": "1.0.7",
"string_decoder": "1.0.1",
"util-deprecate": "1.0.2"
}
},
"request": {
"version": "2.81.0",
"bundled": true,
"optional": true,
"requires": {
"aws-sign2": "0.6.0",
"aws4": "1.6.0",
"caseless": "0.12.0",
"combined-stream": "1.0.5",
"extend": "3.0.1",
"forever-agent": "0.6.1",
"form-data": "2.1.4",
"har-validator": "4.2.1",
"hawk": "3.1.3",
"http-signature": "1.1.1",
"is-typedarray": "1.0.0",
"isstream": "0.1.2",
"json-stringify-safe": "5.0.1",
"mime-types": "2.1.15",
"oauth-sign": "0.8.2",
"performance-now": "0.2.0",
"qs": "6.4.0",
"safe-buffer": "5.0.1",
"stringstream": "0.0.5",
"tough-cookie": "2.3.2",
"tunnel-agent": "0.6.0",
"uuid": "3.0.1"
}
},
"rimraf": {
"version": "2.6.1",
"bundled": true,
"requires": {
"has-flag": "2.0.0"
}
}
"glob": "7.1.2"
}
},
"invariant": {
"version": "2.2.2",
"resolved": "http://registry.npm.taobao.org/invariant/download/invariant-2.2.2.tgz",
"integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=",
"requires": {
"loose-envify": "1.3.1"
}
"safe-buffer": {
"version": "5.0.1",
"bundled": true
},
"invert-kv": {
"version": "1.0.0",
"resolved": "http://registry.npm.taobao.org/invert-kv/download/invert-kv-1.0.0.tgz",
"integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY="
"semver": {
"version": "5.3.0",
"bundled": true,
"optional": true
},
"is-arrayish": {
"version": "0.2.1",
"resolved": "http://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.2.1.tgz",
"integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0="
"set-blocking": {
"version": "2.0.0",
"bundled": true,
"optional": true
},
"is-buffer": {
"version": "1.1.5",
"resolved": "http://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.5.tgz",
"integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw="
"signal-exit": {
"version": "3.0.2",
"bundled": true,
"optional": true
},
"is-builtin-module": {
"version": "1.0.0",
"resolved": "http://registry.npm.taobao.org/is-builtin-module/download/is-builtin-module-1.0.0.tgz",
"integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
"sntp": {
"version": "1.0.9",
"bundled": true,
"optional": true,
"requires": {
"builtin-modules": "1.1.1"
"hoek": "2.16.3"
}
},
"is-dotfile": {
"version": "1.0.3",
"resolved": "http://registry.npm.taobao.org/is-dotfile/download/is-dotfile-1.0.3.tgz",
"integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE="
},
"is-equal-shallow": {
"version": "0.1.3",
"resolved": "http://registry.npm.taobao.org/is-equal-shallow/download/is-equal-shallow-0.1.3.tgz",
"integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=",
"sshpk": {
"version": "1.13.0",
"bundled": true,
"optional": true,
"requires": {
"is-primitive": "2.0.0"
}
},
"is-extendable": {
"version": "0.1.1",
"resolved": "http://registry.npm.taobao.org/is-extendable/download/is-extendable-0.1.1.tgz",
"integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik="
"asn1": "0.2.3",
"assert-plus": "1.0.0",
"bcrypt-pbkdf": "1.0.1",
"dashdash": "1.14.1",
"ecc-jsbn": "0.1.1",
"getpass": "0.1.7",
"jodid25519": "1.0.2",
"jsbn": "0.1.1",
"tweetnacl": "0.14.5"
},
"is-extglob": {
"dependencies": {
"assert-plus": {
"version": "1.0.0",
"resolved": "http://registry.npm.taobao.org/is-extglob/download/is-extglob-1.0.0.tgz",
"integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA="
"bundled": true,
"optional": true
}
}
},
"is-finite": {
"string-width": {
"version": "1.0.2",
"resolved": "http://registry.npm.taobao.org/is-finite/download/is-finite-1.0.2.tgz",
"integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
"bundled": true,
"requires": {
"number-is-nan": "1.0.1"
"code-point-at": "1.1.0",
"is-fullwidth-code-point": "1.0.0",
"strip-ansi": "3.0.1"
}
},
"is-fullwidth-code-point": {
"version": "2.0.0",
"resolved": "http://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz",
"integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
},
"is-glob": {
"version": "2.0.1",
"resolved": "http://registry.npm.taobao.org/is-glob/download/is-glob-2.0.1.tgz",
"integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
"string_decoder": {
"version": "1.0.1",
"bundled": true,
"requires": {
"is-extglob": "1.0.0"
"safe-buffer": "5.0.1"
}
},
"is-number": {
"version": "2.1.0",
"resolved": "http://registry.npm.taobao.org/is-number/download/is-number-2.1.0.tgz",
"integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=",
"stringstream": {
"version": "0.0.5",
"bundled": true,
"optional": true
},
"strip-ansi": {
"version": "3.0.1",
"bundled": true,
"requires": {
"kind-of": "3.2.2"
"ansi-regex": "2.1.1"
}
},
"is-posix-bracket": {
"version": "0.1.1",
"resolved": "http://registry.npm.taobao.org/is-posix-bracket/download/is-posix-bracket-0.1.1.tgz",
"integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q="
},
"is-primitive": {
"version": "2.0.0",
"resolved": "http://registry.npm.taobao.org/is-primitive/download/is-primitive-2.0.0.tgz",
"integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU="
},
"is-promise": {
"version": "2.1.0",
"resolved": "http://registry.npm.taobao.org/is-promise/download/is-promise-2.1.0.tgz",
"integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o="
},
"is-stream": {
"version": "1.1.0",
"resolved": "http://registry.npm.taobao.org/is-stream/download/is-stream-1.1.0.tgz",
"integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ="
},
"is-typedarray": {
"version": "1.0.0",
"resolved": "http://registry.npm.taobao.org/is-typedarray/download/is-typedarray-1.0.0.tgz",
"integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
},
"is-utf8": {
"version": "0.2.1",
"resolved": "http://registry.npm.taobao.org/is-utf8/download/is-utf8-0.2.1.tgz",
"integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI="
"strip-json-comments": {
"version": "2.0.1",
"bundled": true,
"optional": true
},
"isarray": {
"version": "1.0.0",
"resolved": "http://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz",
"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
"tar": {
"version": "2.2.1",
"bundled": true,
"requires": {
"block-stream": "0.0.9",
"fstream": "1.0.11",
"inherits": "2.0.3"
}
},
"isexe": {
"version": "2.0.0",
"resolved": "http://registry.npm.taobao.org/isexe/download/isexe-2.0.0.tgz",
"integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
"tar-pack": {
"version": "3.4.0",
"bundled": true,
"optional": true,
"requires": {
"debug": "2.6.8",
"fstream": "1.0.11",
"fstream-ignore": "1.0.5",
"once": "1.4.0",
"readable-stream": "2.2.9",
"rimraf": "2.6.1",
"tar": "2.2.1",
"uid-number": "0.0.6"
}
},
"isobject": {
"version": "2.1.0",
"resolved": "http://registry.npm.taobao.org/isobject/download/isobject-2.1.0.tgz",
"integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
"tough-cookie": {
"version": "2.3.2",
"bundled": true,
"optional": true,
"requires": {
"isarray": "1.0.0"
"punycode": "1.4.1"
}
},
"isomorphic-fetch": {
"version": "2.2.1",
"resolved": "http://registry.npm.taobao.org/isomorphic-fetch/download/isomorphic-fetch-2.2.1.tgz",
"integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=",
"tunnel-agent": {
"version": "0.6.0",
"bundled": true,
"optional": true,
"requires": {
"node-fetch": "1.7.2",
"whatwg-fetch": "2.0.3"
"safe-buffer": "5.0.1"
}
},
"isstream": {
"version": "0.1.2",
"resolved": "http://registry.npm.taobao.org/isstream/download/isstream-0.1.2.tgz",
"integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
"tweetnacl": {
"version": "0.14.5",
"bundled": true,
"optional": true
},
"jest-docblock": {
"version": "20.1.0-echo.1",
"resolved": "http://registry.npm.taobao.org/jest-docblock/download/jest-docblock-20.1.0-echo.1.tgz",
"integrity": "sha1-vgL0PuAZ+X5rgyZ8dGrHtA0pD+g="
"uid-number": {
"version": "0.0.6",
"bundled": true,
"optional": true
},
"jest-haste-map": {
"version": "20.1.0-alpha.3",
"resolved": "http://registry.npm.taobao.org/jest-haste-map/download/jest-haste-map-20.1.0-alpha.3.tgz",
"integrity": "sha1-N6HuomfNdwuZEUo5wEmih1Ae33I=",
"util-deprecate": {
"version": "1.0.2",
"bundled": true
},
"uuid": {
"version": "3.0.1",
"bundled": true,
"optional": true
},
"verror": {
"version": "1.3.6",
"bundled": true,
"optional": true,
"requires": {
"fb-watchman": "2.0.0",
"graceful-fs": "4.1.11",
"jest-docblock": "20.1.0-echo.1",
"micromatch": "2.3.11",
"sane": "2.0.0",
"worker-farm": "1.5.0"
"extsprintf": "1.0.2"
}
},
"dependencies": {
"sane": {
"version": "2.0.0",
"resolved": "http://registry.npm.taobao.org/sane/download/sane-2.0.0.tgz",
"integrity": "sha1-mct58h9KU6adTQzZV8LbBAJLjrI=",
"wide-align": {
"version": "1.1.2",
"bundled": true,
"optional": true,
"requires": {
"anymatch": "1.3.2",
"exec-sh": "0.2.0",
"fb-watchman": "2.0.0",
"minimatch": "3.0.4",
"minimist": "1.2.0",
"walker": "1.0.7",
"watch": "0.10.0"
"string-width": "1.0.2"
}
},
"wrappy": {
"version": "1.0.2",
"bundled": true
}
}
}
}
}
}
......@@ -2961,6 +3749,12 @@
"resolved": "http://registry.npm.taobao.org/mute-stream/download/mute-stream-0.0.7.tgz",
"integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s="
},
"nan": {
"version": "2.7.0",
"resolved": "http://registry.npm.taobao.org/nan/download/nan-2.7.0.tgz",
"integrity": "sha1-2Vv3IeyHfgjbJ27T/G63j5CDrUY=",
"optional": true
},
"negotiator": {
"version": "0.5.3",
"resolved": "http://registry.npm.taobao.org/negotiator/download/negotiator-0.5.3.tgz",
......@@ -3528,9 +4322,9 @@
}
},
"react-native-amap3d": {
"version": "0.3.1",
"resolved": "http://registry.npm.taobao.org/react-native-amap3d/download/react-native-amap3d-0.3.1.tgz",
"integrity": "sha1-m9pMbE1h+rpFHzbSjzN2v2KmPn4="
"version": "0.3.3",
"resolved": "http://registry.npm.taobao.org/react-native-amap3d/download/react-native-amap3d-0.3.3.tgz",
"integrity": "sha1-T9/HOidzSJWCh/E7gP4yqwOr70c="
},
"react-native-dismiss-keyboard": {
"version": "1.0.0",
......@@ -3554,25 +4348,24 @@
}
},
"react-native-tab-view": {
"version": "0.0.65",
"resolved": "http://registry.npm.taobao.org/react-native-tab-view/download/react-native-tab-view-0.0.65.tgz",
"integrity": "sha1-toXqMIH/fJZIbNmXNhAmxAcwLFk=",
"version": "0.0.67",
"resolved": "http://registry.npm.taobao.org/react-native-tab-view/download/react-native-tab-view-0.0.67.tgz",
"integrity": "sha1-zdFG/l5dS6/2yJ8tXQsV+iPbOdA=",
"requires": {
"prop-types": "15.5.10"
}
},
"react-navigation": {
"version": "1.0.0-beta.11",
"resolved": "http://registry.npm.taobao.org/react-navigation/download/react-navigation-1.0.0-beta.11.tgz",
"integrity": "sha1-QnHtsjzbzG64hgL3/eCnfw73oWA=",
"version": "1.0.0-beta.12",
"resolved": "http://registry.npm.taobao.org/react-navigation/download/react-navigation-1.0.0-beta.12.tgz",
"integrity": "sha1-zw8E/7+f7+QfXFodq5IQa0iinwo=",
"requires": {
"clamp": "1.0.1",
"fbjs": "0.8.14",
"hoist-non-react-statics": "1.2.0",
"hoist-non-react-statics": "2.3.1",
"path-to-regexp": "1.7.0",
"prop-types": "15.5.10",
"react-native-drawer-layout-polyfill": "1.3.2",
"react-native-tab-view": "0.0.65"
"react-native-tab-view": "0.0.67"
}
},
"react-proxy": {
......@@ -4188,14 +4981,6 @@
}
}
},
"string_decoder": {
"version": "1.0.3",
"resolved": "http://registry.npm.taobao.org/string_decoder/download/string_decoder-1.0.3.tgz",
"integrity": "sha1-D8Z9fBQYJd6UKC3VNr7GubzoYKs=",
"requires": {
"safe-buffer": "5.1.1"
}
},
"string-width": {
"version": "2.1.1",
"resolved": "http://registry.npm.taobao.org/string-width/download/string-width-2.1.1.tgz",
......@@ -4220,6 +5005,14 @@
}
}
},
"string_decoder": {
"version": "1.0.3",
"resolved": "http://registry.npm.taobao.org/string_decoder/download/string_decoder-1.0.3.tgz",
"integrity": "sha1-D8Z9fBQYJd6UKC3VNr7GubzoYKs=",
"requires": {
"safe-buffer": "5.1.1"
}
},
"stringstream": {
"version": "0.0.5",
"resolved": "http://registry.npm.taobao.org/stringstream/download/stringstream-0.0.5.tgz",
......
......@@ -9,8 +9,8 @@
"dependencies": {
"react": "16.0.0-alpha.12",
"react-native": "0.47.1",
"react-native-amap3d": "^0.3.1",
"react-navigation": "^1.0.0-beta.11"
"react-native-amap3d": "^0.3.3",
"react-navigation": "^1.0.0-beta.12"
},
"devDependencies": {
"babel-preset-react-native": "2.1.0"
......
......@@ -14,6 +14,7 @@ import Circle from './examples/circle'
import Events from './examples/events'
import Navigation from './examples/navigation'
import HeatMap from './examples/heat-map'
import MultiPoint from './examples/multi-point'
export default StackNavigator({
Examples: {screen: Examples},
......@@ -30,6 +31,7 @@ export default StackNavigator({
Events: {screen: Events},
Navigation: {screen: Navigation},
HeatMap: {screen: HeatMap},
MultiPoint: {screen: MultiPoint},
}, {
navigationOptions: {
headerTintColor: '#212121',
......
......@@ -56,6 +56,8 @@ export default class Examples extends Component {
{this._renderItem('绘制圆形', 'Circle')}
<View style={styles.separator}/>
{this._renderItem('热力图', 'HeatMap')}
<View style={styles.separator}/>
{this._renderItem('海量点', 'MultiPoint')}
</View>
<View style={styles.group}>
{this._renderItem('导航', 'Navigation')}
......
import React, {Component} from 'react'
import {StyleSheet, Alert} from 'react-native'
import {MapView, MultiPoint, Marker} from 'react-native-amap3d'
export default class MultiPointExample extends Component {
static navigationOptions = {
title: '海量点',
}
_points = Array(1000).fill(0).map(i => ({
latitude: 39.5 + Math.random(),
longitude: 116 + Math.random(),
}))
_onItemPress = point => Alert.alert(this._points.indexOf(point).toString())
render() {
return <MapView zoomLevel={12} style={StyleSheet.absoluteFill}>
<MultiPoint
image={'icon'}
points={this._points}
onItemPress={this._onItemPress}
/>
</MapView>
}
}
......@@ -4,6 +4,7 @@ import Polyline from './components/maps/Polyline'
import Polygon from './components/maps/Polygon'
import Circle from './components/maps/Circle'
import HeatMap from './components/maps/HeatMap'
import MultiPoint from './components/maps/MultiPoint'
import Navigation from './components/navigation'
import MapUtils from './components/Utils'
......@@ -12,6 +13,7 @@ MapView.Polyline = Polyline
MapView.Polygon = Polygon
MapView.Circle = Circle
MapView.HeatMap = HeatMap
MapView.MultiPoint = MultiPoint
export default MapView
export {
......@@ -21,6 +23,7 @@ export {
Polygon,
Circle,
HeatMap,
MultiPoint,
Navigation,
MapUtils,
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment