35

反応ネイティブを使用して地図アプリケーションを構築しています。私が使用している API は、このリンクからのものです: https://github.com/lelandrichardson/react-native-maps。以下は、アプリに地図を表示するコードです。その地図にズーム値を与える方法を考えています。また、ユーザーが地図上のボタンをクリックしたときにズーム値を変更する方法。これを実現するために使用するズーム API は何ですか?

import React, {


AppRegistry,
  Component,
  StyleSheet,
  Text,
  View,
  Image,
  ListView,
  TextInput,
  TouchableHighlight,
  Dimensions,
 //MapView,
} from 'react-native';

import MapView from 'react-native-maps';

const styles = StyleSheet.create({
  map: {
    position: 'absolute',
    top: 0,
    left: 0,
    right: 0,
    bottom: 0,
  },
  container: {
    flexDirection: 'row',
    justifyContent: 'space-between',
    padding: 30,
    flex: 1,
    alignItems: 'center'
  },
  inputText: {
    height: 36,
      padding: 4,
      marginRight: 5,
      flex: 4,
      fontSize: 18,
      borderWidth: 1,
      borderColor: '#48BBEC',
      borderRadius: 8,
      color: '#48BBEC'
  }
});

class MapPage extends Component{

    constructor(props){
        super(props);
        this.state = {
            region:{
                latitude: 4.21048,
                longitude: 101.97577,
            latitudeDelta: 10,
            longitudeDelta: 5
            }
        }
    }

    render() {
        return(
            <View style={styles.container}>
                <TextInput style={styles.inputText}></TextInput>
                <MapView 
                    style={ styles.map }
                    mapType={"standard"}
                    region={this.state.region}
                    zoomEnabled={true}
                    scrollEnabled={true}
                    showsScale={true}
                  ></MapView>
            </View>
            )
    }
}

module.exports = MapPage;
4

5 に答える 5

104

animateToRegionメソッドを使用する必要があります(こちらを参照)

latitudeDeltaとを持つ領域オブジェクトを取りますlongitudeDelta。これらを使用して、ズーム レベルを設定します。

更新しました:

Regionオブジェクトでとlatitude中心longitude位置をlatitudeDelta指定し、 とlongitudeDelta表示可能なマップ エリアのスパンを指定します。

このブログ投稿のこの画像は、それをよく示しています (LatΔ と LngΔ)。 ここに画像の説明を入力

于 2016-04-18T07:48:41.623 に答える
3

を使用してこの作業を行うことができましたDimensions.get('window');

            const window = Dimensions.get('window');
            const { width, height }  = window
            LONGITUDE_DELTA = LATITUD_DELTA + (width / height)

そしてデフォルトで設定されていますLATITUD_DELTA = 0.0922onRegionChangeComplete次に、この値をプロップで更新するだけです<MapView>

于 2017-09-18T04:49:21.377 に答える